]> granicus.if.org Git - php/commitdiff
- Add missing check
authorFelipe Pena <felipe@php.net>
Sun, 14 Nov 2010 01:38:52 +0000 (01:38 +0000)
committerFelipe Pena <felipe@php.net>
Sun, 14 Nov 2010 01:38:52 +0000 (01:38 +0000)
Zend/zend_constants.c

index 0d190b269a17d88c554b94302bd7b7367c8acbbd..f059cf70e8b03a0a028ae8c668751e5c4b6728a4 100644 (file)
@@ -440,7 +440,8 @@ ZEND_API int zend_register_constant(zend_constant *c TSRMLS_DC)
                || zend_hash_add(EG(zend_constants), name, c->name_len, (void *) c, sizeof(zend_constant), NULL)==FAILURE) {
                
                /* The internal __COMPILER_HALT_OFFSET__ is prefixed by NULL byte */
-               if (memcmp(name, "\0__COMPILER_HALT_OFFSET__", sizeof("\0__COMPILER_HALT_OFFSET__")) == 0) {
+               if (c->name[0] == '\0' && c->name_len > sizeof("\0__COMPILER_HALT_OFFSET__")
+                       && memcmp(name, "\0__COMPILER_HALT_OFFSET__", sizeof("\0__COMPILER_HALT_OFFSET__")) == 0) {
                        name++;
                }
                zend_error(E_NOTICE,"Constant %s already defined", name);