PHP 4.0 Bug #9505: Pointer not set exception on a realloc
| From: | amra at us dot ibm dot com | Date: | Thu, 01 Mar 2001 00:14:57 +0000 |
| Subject: | PHP 4.0 Bug #9505: Pointer not set exception on a realloc | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-47693@lists.php.net to get a copy of this message | ||
From: amra@us.ibm.com
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