]> granicus.if.org Git - php/commitdiff
Fix segfault in older versions of OpenSSL (before 0.9.8i)
authorScott MacVicar <scottmac@php.net>
Sun, 18 Dec 2011 05:14:32 +0000 (05:14 +0000)
committerScott MacVicar <scottmac@php.net>
Sun, 18 Dec 2011 05:14:32 +0000 (05:14 +0000)
ext/openssl/openssl.c

index 075dafefe4c6275fdb74d32520a3a3c63690942c..dc27716d63f47630a4aa28d13723bbd306594ceb 100644 (file)
@@ -4736,7 +4736,9 @@ PHP_FUNCTION(openssl_encrypt)
        if (options & OPENSSL_ZERO_PADDING) {
                EVP_CIPHER_CTX_set_padding(&cipher_ctx, 0);
        }
-       EVP_EncryptUpdate(&cipher_ctx, outbuf, &i, (unsigned char *)data, data_len);
+       if (data_len > 0) {
+               EVP_EncryptUpdate(&cipher_ctx, outbuf, &i, (unsigned char *)data, data_len);
+       }
        outlen = i;
        if (EVP_EncryptFinal(&cipher_ctx, (unsigned char *)outbuf + i, &i)) {
                outlen += i;