[php-maint] Bug#374963: further debugging

Joerg Wendland joerg at wendlandnet.de
Thu Jun 22 14:12:43 UTC 2006


Hi,
further debugging reveals:

REMOVE_POINTER_FROM_LIST(ptr) expands to

 0  if (ptr==(alloc_globals.head)) { 
 1      (alloc_globals.head) = ptr->pNext; 
 2  } else {
 3      ptr->pLast->pNext = ptr->pNext; 
 4  } 
 5
 6  if (ptr->pNext) { 
 7      ptr->pNext->pLast = ptr->pLast; 
 8  }

The first condition [0] is false, so [3] gets executed. gdb says
that ptr->pLast == 0x10:

(gdb) p ptr->pLast
$9 = (struct _zend_mem_header *) 0x10
(gdb) p ptr->pLast->pNext
Cannot access memory at address 0x10

So this must be the cause of the segmentation fault. A workaround that
comes to mind is to #define ZEND_DISABLE_MEMORY_CACHE 1 but I don't
know if that may have serious performance implications.

Cheers,
  Jörg

-- 
Joerg "joergland" Wendland  |  http://www.wendlandnet.de/joerg/
GPG: 51CF8417 FP: 79C0 7671 AFC7 315E 657A  F318 57A3 7FBD 51CF 8417
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 191 bytes
Desc: Digital signature
Url : http://lists.alioth.debian.org/pipermail/pkg-php-maint/attachments/20060622/d44600ff/attachment-0001.pgp


More information about the pkg-php-maint mailing list