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>
Этот коммит содержится в:
родитель
7656911953
Коммит
01f4040218
16
src/dh.c
16
src/dh.c
@ -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;
|
||||
}
|
||||
|
Загрузка…
Ссылка в новой задаче
Block a user