|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #9264 Using session_encode with user-level session storage functions causes a crash
Submitted: 2001-02-14 12:39 UTC Modified: 2001-09-22 12:24 UTC
From: lolo at phpheaven dot net Assigned:
Status: Closed Package: Session related
PHP Version: 4.0 Latest CVS (14/02/2001) OS: win98 SE
Private report: No CVE-ID: None
 [2001-02-14 12:39 UTC] lolo at phpheaven dot net

Be indulgent for my poorly english level please...

To force session data to be saved when using a database based session storage system and 'register_globals' is set to off I've build this (very) simplified structure of script:

function dbSessionClose()
    return true;

function dbSessionRead($id)
    return true;

function dbSessionWrite($id, $data)
    return true;

function dbSessionDestroy($id)
    return true;

function dbSessionGarbageCollector($sessionLifeTime)
    return true;

function dbSessionSave()
    return dbSessionWrite(session_id(), session_encode());  // The note below is about this line

session_set_save_handler('dbSessionOpen', 'dbSessionClose', 'dbSessionRead', 'dbSessionWrite', 'dbSessionDestroy', 'dbSessionGarbageCollector');

 * Uses session

$myVar = 'crash';


Then each time I run it with the latest PHP 4.0.5dev loaded as an apache module, PHP crash and produces this error:

APACHE a caus? une d?faillance de page dans
 le module PHP4TS.DLL ? 016f:008a533e.
Registres :
EAX=00000000 CS=016f EIP=008a533e EFLGS=00010246
EBX=00000000 SS=0177 ESP=01e2f274 EBP=007f7df0
ECX=007ee7a0 DS=0177 ESI=007ee164 FS=2217
EDX=007ee130 ES=0177 EDI=007f7c46 GS=0000
Octets ? CS : EIP :
8b 00 8b 4c 24 0c 8b 54 24 08 51 8b 4c 24 08 42 
?tat de la pile :
008a57b4 007f7c40 00000005 01e2f2a4 007ee7a0 007ee130 007dd720 00000001 00000000 007dd720 007f7b10 007f7c40 00000000 00000000 007ee7a0 007dd720

An amazing note: if...
- ... at the first run I replace the call to the session_encode() function by the string 'crash', fire the script...
- ... then resume to the original 'dbSessionSave()' function and run the script again...
... everything go right!


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2001-02-15 11:05 UTC] lolo at phpheaven dot net
Oups, in the code before I omited to put the 'open session' function. Here it is:

function dbSessionOpen($savePath, $sessionName)
    return true;

 [2001-03-17 12:08 UTC] lolo at phpheaven dot net

I've done a test with the new php4.0.5-RC1 from and the crash still occurs.

 [2001-06-14 23:21 UTC]
Does this happen with latest CVS snapshot build from ??

 [2001-06-15 13:33 UTC] lolo at phpheaven dot net
Hi sniper and all!

Well, it's not easy to send you an accurate reply because zend snapshots for win32 does not contain the Apache module.

BTW, Ive done some testings:
- with php4.07-dev from the script still crashes Apache with php loaded as a gci or as an Apache module;
- with the latest snapshot from (cgi only), it runs :)

If someone can build the Apache module (I can't do it, sorry :() I may do some more tests.

Thanks for your attention,
 [2001-06-23 05:06 UTC] lolo at phpheaven dot net
Hi All!

I've just done some testings with the new php4.06 release and the crash is still here with:
- php loaded as a cgi or as an Apache module,
- php.ini = the optimized one (without any extension).

 [2001-06-23 17:22 UTC]
Can't reproduce this with either PHP 4.0.5 or PHP 4.0.7-dev on Win32.

 [2001-06-24 05:21 UTC] lolo at phpheaven dot net
Hi !

Sorry to bother you with this bug report you closed yesterday but I think the bug does exist and it's not related to my config because I can reproduce it with all php releases > 4.01 except with the latest snapshots from Zend.

I've done some deep testings this night to understand what could be the reason for the crash and I've noticed that one must have set the 'register_globals' directive to off to face it (wathever is the way php is loaded by Apache and whatever are the extensions loaded).

Please ignore this post if you don't have enough time to test bugs reports again and again: I can wait the next php4.07 package.

Have a nice and shinny week-end,
Lo?c Chapeaux
 [2001-06-24 08:42 UTC]
Reopened. I can reproduce this with PHP 4.0.6:

register_globals=On  ; No crash
register_globasl=Off ; Kaboom!

 [2001-09-22 12:22 UTC] lolo at phpheaven dot net

This bug seems to be fixed in the 4.0.8-dev version from the current cvs.

 [2001-09-22 12:24 UTC]
User reported that it's fixed in 4.0.8dev
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sun Apr 14 16:01:30 2024 UTC