mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
rpc: libssh2: Fix regression in ssh host key verification
Commit 792f81a40e caused a regression in the libssh2 host key verification code by changing the variable type of 'i' to unsigned. Since one of the loops used -1 as a special value if the asking callback was found the conversion made a subsequent test always fail. The bug was stealth enough to pass review, compilers and coverity. Refactor the condition to avoid problems. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1047861
This commit is contained in:
parent
387c316e11
commit
9869f24d08
@ -344,16 +344,14 @@ virNetSSHCheckHostKey(virNetSSHSessionPtr sess)
|
||||
memset(&askKey, 0, sizeof(virConnectCredential));
|
||||
|
||||
for (i = 0; i < sess->cred->ncredtype; i++) {
|
||||
if (sess->cred->credtype[i] == VIR_CRED_ECHOPROMPT) {
|
||||
i = -1;
|
||||
if (sess->cred->credtype[i] == VIR_CRED_ECHOPROMPT)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (i > 0) {
|
||||
if (i == sess->cred->ncredtype) {
|
||||
virReportError(VIR_ERR_SSH, "%s",
|
||||
_("no suitable method to retrieve "
|
||||
"authentication credentials"));
|
||||
_("no suitable callback for host key "
|
||||
"verification"));
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user