openssl.c: fix possible segfault in case EVP_DigestInit fails
diff --git a/src/openssl.c b/src/openssl.c
index 2e31472..42cee2d 100644
--- a/src/openssl.c
+++ b/src/openssl.c
@@ -577,9 +577,10 @@
EVP_MD_CTX ctx;
EVP_MD_CTX_init(&ctx);
- EVP_DigestInit(&ctx, EVP_get_digestbyname("sha1"));
- EVP_DigestUpdate(&ctx, message, len);
- EVP_DigestFinal(&ctx, out, NULL);
+ if (EVP_DigestInit(&ctx, EVP_get_digestbyname("sha1"))) {
+ EVP_DigestUpdate(&ctx, message, len);
+ EVP_DigestFinal(&ctx, out, NULL);
+ }
}
int
@@ -596,9 +597,10 @@
EVP_MD_CTX ctx;
EVP_MD_CTX_init(&ctx);
- EVP_DigestInit(&ctx, EVP_get_digestbyname("md5"));
- EVP_DigestUpdate(&ctx, message, len);
- EVP_DigestFinal(&ctx, out, NULL);
+ if (EVP_DigestInit(&ctx, EVP_get_digestbyname("md5"))) {
+ EVP_DigestUpdate(&ctx, message, len);
+ EVP_DigestFinal(&ctx, out, NULL);
+ }
}
static unsigned char *