1
1

Add error checks to ssh_do_sign_with_agent() and fix a memleak.

git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@546 7dcaeef0-15fb-0310-b436-a5af3365683c
Этот коммит содержится в:
Andreas Schneider 2009-04-18 11:22:27 +00:00
родитель ff73826b45
Коммит f402e8d113

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

@ -1133,14 +1133,29 @@ STRING *ssh_do_sign_with_agent(struct ssh_session *session,
/* prepend session identifier */
session_id = string_new(SHA_DIGEST_LEN);
if (session_id == NULL) {
return NULL;
}
string_fill(session_id, crypto->session_id, SHA_DIGEST_LEN);
sigbuf = buffer_new();
if (sigbuf == NULL) {
string_free(session_id);
return NULL;
}
buffer_add_ssh_string(sigbuf, session_id);
if (buffer_add_ssh_string(sigbuf, session_id) < 0) {
buffer_free(sigbuf);
string_free(session_id);
return NULL;
}
string_free(session_id);
/* append out buffer */
buffer_add_buffer(sigbuf, buf);
if (buffer_add_buffer(sigbuf, buf) < 0) {
buffer_free(sigbuf);
return NULL;
}
/* create signature */
signature = agent_sign_data(session, sigbuf, publickey);