]> granicus.if.org Git - php/commitdiff
MFH: fix segfault in imap_headerinfo() when fromlength or subjectlength are less...
authorAntony Dovgal <tony2001@php.net>
Thu, 20 Jan 2005 14:11:36 +0000 (14:11 +0000)
committerAntony Dovgal <tony2001@php.net>
Thu, 20 Jan 2005 14:11:36 +0000 (14:11 +0000)
+ fix protos

ext/imap/php_imap.c

index 5706e0f5ef9180fbca68cbf7de165c06a8041ac4..34c51188c1fcd13e0d8be9bc7d9e106ab585d342 100644 (file)
@@ -1525,12 +1525,20 @@ PHP_FUNCTION(imap_headerinfo)
 
        convert_to_long_ex(msgno);
        if (myargc >= 3) {
-               convert_to_long_ex(fromlength); 
+               convert_to_long_ex(fromlength);
+               if (Z_LVAL_PP(fromlength) < 0) {
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "From length has to be greater than or equal to 0");
+                       RETURN_FALSE;
+               }
        } else {
                fromlength = 0x00;
        }
        if (myargc >= 4) {
                convert_to_long_ex(subjectlength);
+               if (Z_LVAL_PP(subjectlength) < 0) {
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "Subject length has to be greater than or equal to 0");
+                       RETURN_FALSE;
+               }
        } else {
                subjectlength = 0x00;
        }
@@ -1798,7 +1806,7 @@ PHP_FUNCTION(imap_fetchstructure)
 }
 /* }}} */
 
-/* {{{ proto string imap_fetchbody(resource stream_id, int msg_no, int section [, int options])
+/* {{{ proto string imap_fetchbody(resource stream_id, int msg_no, string section [, int options])
    Get a specific body section */
 PHP_FUNCTION(imap_fetchbody)
 {
@@ -2612,7 +2620,7 @@ PHP_FUNCTION(imap_status)
 }
 /* }}} */
 
-/* {{{ proto object imap_bodystruct(resource stream_id, int msg_no, int section)
+/* {{{ proto object imap_bodystruct(resource stream_id, int msg_no, string section)
    Read the structure of a specified body section of a specific message */
 PHP_FUNCTION(imap_bodystruct)
 {