[PHP-DEV] PHP 4.0 Bug #9505: Pointer not set exception on a realloc From: amra <email protected>
Date: 02/28/01

From: amra <email protected>
Operating system: OS400
PHP version: 4.0.4pl1
PHP Bug Type: Reproduceable crash
Bug description: Pointer not set exception on a realloc

Got the PHP to compile and build, now I am doing some simple tests. On initial invocation to PHP, I get the following exception:

Message . . . . : Pointer not set for location referenced.
Cause . . . . . : A pointer was used, either directly or as a basing pointer, that has not been set to an address.
                                                                       
The exception was in c file zend_alloc.c, routine _erealloc(). The problem code is the first line:

ZEND_API void *_erealloc(void *ptr, size_t size, int allow_failure ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
{
      zend_mem_header *p = (zend_mem_header *) ((char *)ptr-sizeof(zend_mem_header)-PLATFORM_PADDING);
        zend_mem_header *orig = p;
    
        DECLARE_CACHE_VARS
        ALS_FETCH();

        if (!ptr) {
                return _emalloc(size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
        }
  .
  .
  .
}

The first line is referencing the pointer without checking if it is NULL. I moved the first 2 lines after the if-check and it cleared up the problem.

-- 
Edit Bug report at: http://bugs.php.net/?id=9505&edit=1

-- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: php-dev-unsubscribe <email protected> For additional commands, e-mail: php-dev-help <email protected> To contact the list administrators, e-mail: php-list-admin <email protected>