Properly propagate out of memory errors.
Этот коммит содержится в:
родитель
d79f906b52
Коммит
197764afcc
@ -1036,6 +1036,10 @@ ssize_t _libssh2_channel_read_ex(LIBSSH2_CHANNEL *channel,
|
||||
do {
|
||||
rc = libssh2_packet_read(session);
|
||||
} while (rc > 0);
|
||||
|
||||
if((rc < 0) && (rc != PACKET_EAGAIN)) {
|
||||
return rc;
|
||||
}
|
||||
rc = 0;
|
||||
|
||||
/* restore blocking state */
|
||||
|
@ -317,13 +317,13 @@ static int libssh2_hostkey_method_ssh_dss_signv(LIBSSH2_SESSION *session, unsign
|
||||
unsigned int i;
|
||||
|
||||
*signature = LIBSSH2_ALLOC(session, 2 * SHA_DIGEST_LENGTH);
|
||||
*signature_len = 2 * SHA_DIGEST_LENGTH;
|
||||
memset(*signature, 0, 2 * SHA_DIGEST_LENGTH);
|
||||
|
||||
if (!(*signature)) {
|
||||
if (!*signature) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
*signature_len = 2 * SHA_DIGEST_LENGTH;
|
||||
memset(*signature, 0, 2 * SHA_DIGEST_LENGTH);
|
||||
|
||||
libssh2_sha1_init(&ctx);
|
||||
for(i = 0; i < veccount; i++) {
|
||||
libssh2_sha1_update(ctx, datavec[i].iov_base, datavec[i].iov_len);
|
||||
|
@ -220,7 +220,8 @@ static libssh2pack_t fullpacket(LIBSSH2_SESSION *session,
|
||||
|
||||
debugdump(session, "libssh2_packet_read() plain",
|
||||
p->payload, payload_len);
|
||||
libssh2_packet_add(session, p->payload, payload_len, macstate);
|
||||
if (libssh2_packet_add(session, p->payload, payload_len, macstate) < 0)
|
||||
return PACKET_FAIL;
|
||||
|
||||
return packet_type;
|
||||
}
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user