1
1

dh: Avoid segmentation fault in GEX if fallback to known moduli

Make ssh_fallback_group() to duplicate the modulus and generator.

Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
Этот коммит содержится в:
Anderson Toshiyuki Sasaki 2019-06-07 19:08:53 +02:00 коммит произвёл Andreas Schneider
родитель 7656911953
Коммит 01f4040218

Просмотреть файл

@ -571,13 +571,21 @@ int ssh_fallback_group(uint32_t pmax,
*generator = NULL;
if (pmax < 3072) {
*modulus = ssh_dh_group14;
bignum_dup(ssh_dh_group14, modulus);
} else if (pmax < 6144) {
*modulus = ssh_dh_group16;
bignum_dup(ssh_dh_group16, modulus);
} else {
*modulus = ssh_dh_group18;
bignum_dup(ssh_dh_group18, modulus);
}
if (*modulus == NULL) {
return SSH_ERROR;
}
bignum_dup(ssh_dh_generator, generator);
if (*generator == NULL) {
bignum_safe_free((*modulus));
return SSH_ERROR;
}
*generator = ssh_dh_generator;
return SSH_OK;
}