mirror of
https://git.libssh.org/projects/libssh.git
synced 2026-02-10 10:26:47 +09:00
messages: Do not leak memory if answered had been allocated previously
BUG: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1184
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit c78c6c6542)
This commit is contained in:
@@ -942,7 +942,9 @@ SSH_PACKET_CALLBACK(ssh_packet_userauth_info_response){
|
|||||||
" mismatch: p=%u a=%u", session->kbdint->nprompts, nanswers);
|
" mismatch: p=%u a=%u", session->kbdint->nprompts, nanswers);
|
||||||
}
|
}
|
||||||
session->kbdint->nanswers = nanswers;
|
session->kbdint->nanswers = nanswers;
|
||||||
session->kbdint->answers = malloc(nanswers * sizeof(char *));
|
|
||||||
|
SAFE_FREE(session->kbdint->answers);
|
||||||
|
session->kbdint->answers = calloc(1, nanswers * sizeof(char *));
|
||||||
if (session->kbdint->answers == NULL) {
|
if (session->kbdint->answers == NULL) {
|
||||||
session->kbdint->nanswers = 0;
|
session->kbdint->nanswers = 0;
|
||||||
ssh_set_error_oom(session);
|
ssh_set_error_oom(session);
|
||||||
@@ -951,7 +953,6 @@ SSH_PACKET_CALLBACK(ssh_packet_userauth_info_response){
|
|||||||
|
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
memset(session->kbdint->answers, 0, nanswers * sizeof(char *));
|
|
||||||
|
|
||||||
for (i = 0; i < nanswers; i++) {
|
for (i = 0; i < nanswers; i++) {
|
||||||
tmp = buffer_get_ssh_string(packet);
|
tmp = buffer_get_ssh_string(packet);
|
||||||
|
|||||||
Reference in New Issue
Block a user