]> granicus.if.org Git - php/commitdiff
- Fixed bug #50145 (crash while running bug35634.phpt)
authorFelipe Pena <felipe@php.net>
Tue, 17 Nov 2009 11:18:40 +0000 (11:18 +0000)
committerFelipe Pena <felipe@php.net>
Tue, 17 Nov 2009 11:18:40 +0000 (11:18 +0000)
NEWS
Zend/zend_language_scanner.c
Zend/zend_language_scanner.l

diff --git a/NEWS b/NEWS
index 01bf45584fe76625052b4ac4c6370ae54a0d2448..7f943285ba11beb76ff44d82d85a18347cb798f4 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -23,6 +23,7 @@ PHP                                                                        NEWS
 - Fixed bug #50174 (Incorrectly matched docComment). (Felipe)
 - Fixed bug #50158 (FILTER_VALIDATE_EMAIL fails with valid addresses
   containing = or ?). (Pierrick)
+- Fixed bug #50145 (crash while running bug35634.phpt). (Felipe)
 - Fixed bug #50087 (NSAPI performance improvements). (Uwe Schindler)
 - Fixed bug #50152 (ReflectionClass::hasProperty behaves like isset() not
   property_exists). (Felipe)
index b340b1d5919a97b3bd9b57dcb5e6876bc3a0fec5..25d7abf0b2868e9039ca1e06594b886d16ad30e5 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Thu Sep 10 15:34:33 2009 */
+/* Generated by re2c 0.13.5 on Mon Nov 16 23:30:01 2009 */
 #line 1 "Zend/zend_language_scanner.l"
 /*
    +----------------------------------------------------------------------+
@@ -685,12 +685,12 @@ ZEND_API int zend_multibyte_read_script(unsigned char *buf, size_t n TSRMLS_DC)
 {
        if (SCNG(script_org)) {
                efree(SCNG(script_org));
+               SCNG(script_org) = NULL;
        }
-       SCNG(script_org_size) = n;
-       SCNG(script_org) = (unsigned char*)erealloc(SCNG(script_org), SCNG(script_org_size));
-       memcpy(SCNG(script_org) + SCNG(script_org_size) - n, buf, n);
+       SCNG(script_org_size) = n;      
        
-       SCNG(script_org) = (unsigned char*)erealloc(SCNG(script_org), SCNG(script_org_size) + 1);
+       SCNG(script_org) = (unsigned char*)emalloc(SCNG(script_org_size) + 1);
+       memcpy(SCNG(script_org), buf, n);
        *(SCNG(script_org)+SCNG(script_org_size)) = '\0';
 
        return 0;
index 6717521ebdcfc34c25d0cd94bec28a06f2336b0f..98a27421cbf4d11e708cfcbd0f896ab5469399f7 100644 (file)
@@ -683,12 +683,12 @@ ZEND_API int zend_multibyte_read_script(unsigned char *buf, size_t n TSRMLS_DC)
 {
        if (SCNG(script_org)) {
                efree(SCNG(script_org));
+               SCNG(script_org) = NULL;
        }
-       SCNG(script_org_size) = n;
-       SCNG(script_org) = (unsigned char*)erealloc(SCNG(script_org), SCNG(script_org_size));
-       memcpy(SCNG(script_org) + SCNG(script_org_size) - n, buf, n);
+       SCNG(script_org_size) = n;      
        
-       SCNG(script_org) = (unsigned char*)erealloc(SCNG(script_org), SCNG(script_org_size) + 1);
+       SCNG(script_org) = (unsigned char*)emalloc(SCNG(script_org_size) + 1);
+       memcpy(SCNG(script_org), buf, n);
        *(SCNG(script_org)+SCNG(script_org_size)) = '\0';
 
        return 0;