Hi

OS: Debian Linux (Woody), kernel 2.2.20
PHP: v4.1.2

I'm having some troubles with my sessions, when the page is sent to the visitor, it sometimes stops after ½ the page or so. 90% of the times, it works perfectly
to visit the page, so this appears to be totally random. However, I have reason to believe it has something to do with my sessions, I have written a custom session
lib which works with MySQL, and then set it up with session_set_save_handler()

Now, I checked the error logs of my Apache HTTP, and it's filled with
[Mon Jan 20 15:20:54 2003] [notice] child pid 19500 exit signal Segmentation fault (11)
[Mon Jan 20 15:20:54 2003] [notice] child pid 19399 exit signal Segmentation fault (11)
FATAL: emalloc(): Unable to allocate -916562933 bytes
[Mon Jan 20 15:21:02 2003] [notice] child pid 19499 exit signal Segmentation fault (11)
[Mon Jan 20 15:21:20 2003] [notice] child pid 19401 exit signal Segmentation fault (11)
[Mon Jan 20 15:21:32 2003] [notice] child pid 19514 exit signal Segmentation fault (11)
[Mon Jan 20 15:21:35 2003] [notice] child pid 19403 exit signal Segmentation fault (11)

The reason to why I'm sure it's PHP is the "emalloc()" line, which I'm told only can be generated by PHP. Now, I'm wondering if this is a know bug, or am I doing
something wrong?

In short:
The content stream (HTML stream) is interrupted, probably because of a segment fault caused by PHP Session functions. Is there a way to work around this bug
without performing a complete upgrade? If this has already been fixed in a newer version, which version do I need to get? 4.3.0 is not really an option to me, since
I'm running APT-GET, their latest version is 4.1.2 (stable) and 4.2.6 (unstable) (or something)

Code I use to setup the sessions:
session_start();
session_register("SESSION");

if (!isset($SESSION)) {
$SESSION = array();
$SESSION["submitdata"] = array();
$SESSION["addr"] = $REMOTE_ADDR;
$SESSION["user"] = user_auth($_COOKIE['replayuser'], $_COOKIE['replaypass']);
}

# Prevent Session hi-jacking, only allow people from the IP who created the session, or else
# re-auth user
if ($SESSION["addr"] != $REMOTE_ADDR) {
$SESSION["user"] = user_auth($_COOKIE['replayuser'], $_COOKIE['replaypass']);
$SESSION["addr"] = $REMOTE_ADDR;
}

A quick reply is appreciated! Thanks in advance


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to