PHP 4.0 Bug #6958: mod_mm: session WRITE returns FAILURE when vallen=0
| From: | tcarroll at chc-chimes dot com | Date: | Sat, 30 Sep 2000 09:37:10 +0000 |
| Subject: | PHP 4.0 Bug #6958: mod_mm: session WRITE returns FAILURE when vallen=0 | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-33907@lists.php.net to get a copy of this message | ||
From: tcarroll@chc-chimes.com
Operating system: FreeBSD 4.01
PHP version: 4.0.2
PHP Bug Type: *Session related
Bug description: mod_mm: session WRITE returns FAILURE when vallen=0
when session.save_handler = mm
the following script will cause a error logging
<?php
session_start();
?>
The error is produced:
PHP Warning: Failed to write session data (mm). Please verify that the current setting of
session.save_path is correct (/tmp) in Unknown on line 0
<br>
<b>Warning</b>: Failed to write session data (mm). Please verify that the current
setting of session.save_path is correct (/tmp) in <b>Unknown</b> on line
<b>0</b><br>
mod_mm WRITE returns failure for vallen = 0.
Following is a diff. Also fixes small problems when the module reports errors in debug mode.
--- mod_mm.c Mon Jul 10 06:09:14 2000
+++ mod_mm.c.tom Fri Sep 29 17:05:38 2000
@@ -162,7 +162,7 @@
ps_mm_debug("optimizing\n");
}
- ps_mm_debug(stderr, "lookup(%s): ret=%x,h=%d\n", key, ret, h);
+ ps_mm_debug("lookup(%s): ret=%x,h=%d\n", key, ret, h);
return ret;
}
@@ -256,14 +256,16 @@
PS_MM_DATA;
ps_sd *sd;
+ if ( vallen == 0 ) return SUCCESS;
+
mm_lock(data->mm, MM_LOCK_RW);
sd = ps_sd_lookup(data, key, 1);
if (!sd) {
sd = ps_sd_new(data, key, val, vallen);
- ps_mm_debug(stderr, "new one for %s\n", key);
+ ps_mm_debug("new one for %s\n", key);
} else {
- ps_mm_debug(stderr, "found existing one for %s\n", key);
+ ps_mm_debug("found existing one for %s\n", key);
mm_free(data->mm, sd->data);
sd->datalen = vallen;
sd->data = mm_malloc(data->mm, vallen);