check that we don't pass negative numbers of memset [CID-169]
This commit is contained in:
@@ -1402,6 +1402,7 @@ pk_rd_pa_reply_dh(krb5_context context,
|
|||||||
kdc_dh_pubkey, ctx->u.dh);
|
kdc_dh_pubkey, ctx->u.dh);
|
||||||
if (dh_gen_keylen == -1) {
|
if (dh_gen_keylen == -1) {
|
||||||
ret = KRB5KRB_ERR_GENERIC;
|
ret = KRB5KRB_ERR_GENERIC;
|
||||||
|
dh_gen_keylen = 0;
|
||||||
krb5_set_error_message(context, ret,
|
krb5_set_error_message(context, ret,
|
||||||
N_("PKINIT: Can't compute Diffie-Hellman key", ""));
|
N_("PKINIT: Can't compute Diffie-Hellman key", ""));
|
||||||
goto out;
|
goto out;
|
||||||
@@ -1446,6 +1447,7 @@ pk_rd_pa_reply_dh(krb5_context context,
|
|||||||
EC_KEY_free(public);
|
EC_KEY_free(public);
|
||||||
if (dh_gen_keylen == -1) {
|
if (dh_gen_keylen == -1) {
|
||||||
ret = KRB5KRB_ERR_GENERIC;
|
ret = KRB5KRB_ERR_GENERIC;
|
||||||
|
dh_gen_keylen = 0;
|
||||||
krb5_set_error_message(context, ret,
|
krb5_set_error_message(context, ret,
|
||||||
N_("PKINIT: Can't compute ECDH public key", ""));
|
N_("PKINIT: Can't compute ECDH public key", ""));
|
||||||
goto out;
|
goto out;
|
||||||
@@ -1455,6 +1457,11 @@ pk_rd_pa_reply_dh(krb5_context context,
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (dh_gen_keylen >= 0) {
|
||||||
|
ret = EINVAL;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
*key = malloc (sizeof (**key));
|
*key = malloc (sizeof (**key));
|
||||||
if (*key == NULL) {
|
if (*key == NULL) {
|
||||||
ret = ENOMEM;
|
ret = ENOMEM;
|
||||||
|
Reference in New Issue
Block a user