openssl.c: fix possible segfault in case EVP_DigestInit fails
This commit is contained in:
@@ -577,10 +577,11 @@ libssh2_sha1(const unsigned char *message, unsigned long len,
|
|||||||
EVP_MD_CTX ctx;
|
EVP_MD_CTX ctx;
|
||||||
|
|
||||||
EVP_MD_CTX_init(&ctx);
|
EVP_MD_CTX_init(&ctx);
|
||||||
EVP_DigestInit(&ctx, EVP_get_digestbyname("sha1"));
|
if (EVP_DigestInit(&ctx, EVP_get_digestbyname("sha1"))) {
|
||||||
EVP_DigestUpdate(&ctx, message, len);
|
EVP_DigestUpdate(&ctx, message, len);
|
||||||
EVP_DigestFinal(&ctx, out, NULL);
|
EVP_DigestFinal(&ctx, out, NULL);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
libssh2_md5_init(libssh2_md5_ctx *ctx)
|
libssh2_md5_init(libssh2_md5_ctx *ctx)
|
||||||
@@ -596,10 +597,11 @@ libssh2_md5(const unsigned char *message, unsigned long len,
|
|||||||
EVP_MD_CTX ctx;
|
EVP_MD_CTX ctx;
|
||||||
|
|
||||||
EVP_MD_CTX_init(&ctx);
|
EVP_MD_CTX_init(&ctx);
|
||||||
EVP_DigestInit(&ctx, EVP_get_digestbyname("md5"));
|
if (EVP_DigestInit(&ctx, EVP_get_digestbyname("md5"))) {
|
||||||
EVP_DigestUpdate(&ctx, message, len);
|
EVP_DigestUpdate(&ctx, message, len);
|
||||||
EVP_DigestFinal(&ctx, out, NULL);
|
EVP_DigestFinal(&ctx, out, NULL);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static unsigned char *
|
static unsigned char *
|
||||||
write_bn(unsigned char *buf, const BIGNUM *bn, int bn_bytes)
|
write_bn(unsigned char *buf, const BIGNUM *bn, int bn_bytes)
|
||||||
|
Reference in New Issue
Block a user