From:             marrtins at hackres dot lv
Operating system: w2k sp4
PHP version:      4.3.3
PHP Bug Type:     Reproducible crash
Bug description:  Apache crash in ext/standard/datetime.c

Description:
------------
I got a Apache(Server version: Apache/1.3.27 (Win32) / Server built: Oct 
6 2003 13:10:44) crash when use my own session handling functions and
session gets created first time.

Application popup: Apache.exe - Application Error : The instruction at
"0x1004d6ba" referenced memory at "0x00000000". The memory could not be
"read".

Click on OK to terminate the program
Click on CANCEL to debug the program 


Reproduce code:
---------------
1. class.SessionHandler.php
------------------------
<?
...
  function sess_read($sess_id) {
    global $db;

    $sess = $this->get_sess($sess_id);
    if(!count($sess))
      return ""; // <- crash when returning *anything*
...
?>

2. inc.session.php
---------------
<?
ini_set('session.save_handler', 'user');
ini_set('session.use_cookies', true);
ini_set('session.name', 'sid');
ini_set('session.gc_maxlifetime', time() + 31536000); // 1 year
ini_set('session.cookie_lifetime', time() + 31536000); // 1 year
ini_set('session.serialize_handler', 'php');
ini_set('session.gc_probability', 1);

$sess_handler = new SessionHandler();
session_set_save_handler(
  array(&$sess_handler, "sess_open"), 
  array(&$sess_handler, "sess_close"),
  array(&$sess_handler, "sess_read"),
  array(&$sess_handler, "sess_write"),
  array(&$sess_handler, "sess_destroy"),
  array(&$sess_handler, "sess_gc")
);

session_start();
?>

3. ext/standard/dattime.c
for some reasons 'php_gmtime_r' returns NULL
----------------------
...
tm1 = php_gmtime_r(&t, &tmbuf);
...
  } else if(tm1) {
    snprintf(str, 80, "%s, %02d-%s-%02d %02d:%02d:%02d GMT",
        day_short_names[tm1->tm_wday],
        tm1->tm_mday,
        mon_short_names[tm1->tm_mon],
        ((tm1->tm_year)%100),
        tm1->tm_hour, tm1->tm_min, tm1->tm_sec);
  }

cahnge to:
...
  } else if(tm1) {
...

---------------
Now works fine.



-- 
Edit bug report at http://bugs.php.net/?id=25780&edit=1
-- 
Try a CVS snapshot (php4):  http://bugs.php.net/fix.php?id=25780&r=trysnapshot4
Try a CVS snapshot (php5):  http://bugs.php.net/fix.php?id=25780&r=trysnapshot5
Fixed in CVS:               http://bugs.php.net/fix.php?id=25780&r=fixedcvs
Fixed in release:           http://bugs.php.net/fix.php?id=25780&r=alreadyfixed
Need backtrace:             http://bugs.php.net/fix.php?id=25780&r=needtrace
Try newer version:          http://bugs.php.net/fix.php?id=25780&r=oldversion
Not developer issue:        http://bugs.php.net/fix.php?id=25780&r=support
Expected behavior:          http://bugs.php.net/fix.php?id=25780&r=notwrong
Not enough info:            http://bugs.php.net/fix.php?id=25780&r=notenoughinfo
Submitted twice:            http://bugs.php.net/fix.php?id=25780&r=submittedtwice
register_globals:           http://bugs.php.net/fix.php?id=25780&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=25780&r=php3
Daylight Savings:           http://bugs.php.net/fix.php?id=25780&r=dst
IIS Stability:              http://bugs.php.net/fix.php?id=25780&r=isapi
Install GNU Sed:            http://bugs.php.net/fix.php?id=25780&r=gnused
Floating point limitations: http://bugs.php.net/fix.php?id=25780&r=float

Reply via email to