mirror of
https://git.libssh.org/projects/libssh.git
synced 2026-02-11 10:40:27 +09:00
pki: NULL check pki_signature_from_rsa_blob result
Check for a potential NULL result from `pki_signature_from_rsa_blob` in `pki_signature_from_blob`. Otherwise the following `sig->type_c` will result in a segfault. Introduced in7f83a1efae. Signed-off-by: Jon Simons <jon@jonsimons.org> Reviewed-by: Andreas Schneider <asn@cryptomilk.org> (cherry picked from commitccd73db90c)
This commit is contained in:
committed by
Andreas Schneider
parent
e69fb89e98
commit
b6d275537e
@@ -1681,6 +1681,9 @@ ssh_signature pki_signature_from_blob(const ssh_key pubkey,
|
|||||||
case SSH_KEYTYPE_RSA:
|
case SSH_KEYTYPE_RSA:
|
||||||
case SSH_KEYTYPE_RSA1:
|
case SSH_KEYTYPE_RSA1:
|
||||||
sig = pki_signature_from_rsa_blob(pubkey, sig_blob, sig);
|
sig = pki_signature_from_rsa_blob(pubkey, sig_blob, sig);
|
||||||
|
if (sig == NULL) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
sig->type_c = ssh_key_signature_to_char(type, hash_type);
|
sig->type_c = ssh_key_signature_to_char(type, hash_type);
|
||||||
break;
|
break;
|
||||||
case SSH_KEYTYPE_ECDSA:
|
case SSH_KEYTYPE_ECDSA:
|
||||||
|
|||||||
@@ -917,6 +917,9 @@ ssh_signature pki_signature_from_blob(const ssh_key pubkey,
|
|||||||
switch(type) {
|
switch(type) {
|
||||||
case SSH_KEYTYPE_RSA:
|
case SSH_KEYTYPE_RSA:
|
||||||
sig = pki_signature_from_rsa_blob(pubkey, sig_blob, sig);
|
sig = pki_signature_from_rsa_blob(pubkey, sig_blob, sig);
|
||||||
|
if (sig == NULL) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
sig->type_c = ssh_key_signature_to_char(type, hash_type);
|
sig->type_c = ssh_key_signature_to_char(type, hash_type);
|
||||||
break;
|
break;
|
||||||
case SSH_KEYTYPE_ECDSA: {
|
case SSH_KEYTYPE_ECDSA: {
|
||||||
|
|||||||
Reference in New Issue
Block a user