From: Jakub Zelenka Date: Sun, 25 Oct 2015 17:53:39 +0000 (+0000) Subject: Check EVP_SealFinal return code X-Git-Tag: php-7.0.1RC1~199 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2ee99f89544ae0ef7fded6daca6f8ba27c52f319;p=php Check EVP_SealFinal return code This can be done since we no longer support OpenSSL 0.9.6 --- diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c index a2bf8042c6..b2ae5fcaff 100644 --- a/ext/openssl/openssl.c +++ b/ext/openssl/openssl.c @@ -4963,15 +4963,14 @@ PHP_FUNCTION(openssl_seal) EVP_CIPHER_CTX_cleanup(&ctx); if (!EVP_SealInit(&ctx, cipher, eks, eksl, &iv_buf[0], pkeys, nkeys) || - !EVP_SealUpdate(&ctx, buf, &len1, (unsigned char *)data, (int)data_len)) { + !EVP_SealUpdate(&ctx, buf, &len1, (unsigned char *)data, (int)data_len) || + !EVP_SealFinal(&ctx, buf + len1, &len2)) { RETVAL_FALSE; efree(buf); EVP_CIPHER_CTX_cleanup(&ctx); goto clean_exit; } - EVP_SealFinal(&ctx, buf + len1, &len2); - if (len1 + len2 > 0) { zval_dtor(sealdata); buf[len1 + len2] = '\0';