Bug #9264 Updated: Using session_encode with user-level session storage functions causes a crash
| From: | sniper@php.net | Date: | Fri, 15 Jun 2001 03:21:56 +0000 |
| Subject: | Bug #9264 Updated: Using session_encode with user-level session storage functions causes a crash | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-56924@lists.php.net to get a copy of this message | ||
ID: 9264
Updated by: sniper
Reported By: lolo@phpheaven.net
Old-Status: Open
Status: Feedback
Bug Type: *Session related
Operating system:
PHP Version: 4.0 Latest CVS (14/02/2001)
Assigned To:
Comments:
Does this happen with latest CVS snapshot build from
http://www.zend.com/snapshots/ ??
Previous Comments:
---------------------------------------------------------------------------
[2001-03-17 12:08:15] lolo@phpheaven.net
Hi!
I've done a test with the new php4.0.5-RC1 from php4win.de and the crash still occurs.
Regards,
Loïc
---------------------------------------------------------------------------
[2001-02-15 11:05:27] lolo@phpheaven.net
Oups, in the code before I omited to put the 'open session' function. Here it is:
function dbSessionOpen($savePath, $sessionName)
{
return true;
}
---------------------------------------------------------------------------
[2001-02-14 12:39:47] lolo@phpheaven.net
Hi!
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
*/
session_start();
session_register('myVar');
$myVar = 'crash';
dbSessionSave();
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!
---------------------------------------------------------------------------
ATTENTION! Do NOT reply to this email!
To reply, use the web interface found at http://bugs.php.net/?id=9264&edit=2