openssl.c: fix possible segfault in case EVP_DigestInit fails

This commit is contained in:
Marc Hoersken
2015-03-23 22:07:39 +01:00
parent 864950cf16
commit 84590bc78f

View File

@@ -577,9 +577,10 @@ 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
@@ -596,9 +597,10 @@ 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 *