From: Andi Gutmans Date: Mon, 30 Apr 2001 10:23:13 +0000 (+0000) Subject: - Fix crash bugs when rfc822_qprint and rfc822_base64 return NULL X-Git-Tag: php-4.0.6RC1~247 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1d3ef307143843fcf966f260af5bf29aaedc2bfd;p=php - Fix crash bugs when rfc822_qprint and rfc822_base64 return NULL --- diff --git a/ext/imap/php_imap.c b/ext/imap/php_imap.c index 7fb8213b15..1d8ff0714d 100644 --- a/ext/imap/php_imap.c +++ b/ext/imap/php_imap.c @@ -2116,6 +2116,9 @@ PHP_FUNCTION(imap_base64) convert_to_string_ex(text); decode = (char *) rfc822_base64((unsigned char *) Z_STRVAL_PP(text), Z_STRLEN_PP(text), &newlength); + if (decode == NULL) { + RETURN_FALSE; + } RETVAL_STRINGL(decode, newlength, 1); fs_give((void**) &decode); } @@ -2137,6 +2140,9 @@ PHP_FUNCTION(imap_qprint) convert_to_string_ex(text); decode = (char *) rfc822_qprint((unsigned char *) Z_STRVAL_PP(text), Z_STRLEN_PP(text), &newlength); + if (decode == NULL) { + RETURN_FALSE; + } RETVAL_STRINGL(decode, newlength, 1); fs_give((void**) &decode); } @@ -3715,6 +3721,11 @@ PHP_FUNCTION(imap_mime_header_decode) } else if (encoding == 'b' || encoding == 'B') { decode = (char *)rfc822_base64((unsigned char *) text, strlen(text), &newlength); /* Decode 'B' encoded data */ } + if (decode == NULL) { + efree(charset); + zval_dtor(return_value); + RETURN_FALSE; + } MAKE_STD_ZVAL(myobject); object_init(myobject); add_property_string(myobject, "charset", charset, 1);