Hi,
There's a problem with path_copy and ZTS mode (which defines
VIRTUAL_DIR). It's estrdup()d only in non-ZTS mode but also
efree() in ZTS mode which causes problem.
The patch fixed that, but me being not that familiar with the
things, I better let commit this someone who knows the code
(Wez, Sterling?).
- Markus
--
GnuPG Key: http://guru.josefine.at/~mfischer/C2272BD0.asc
Wishlist: http://guru.josefine.at/~mfischer/wishlist
? bz2-fix-overrun.diff
Index: bz2.c
===================================================================
RCS file: /repository/php4/ext/bz2/bz2.c,v
retrieving revision 1.49
diff -u -r1.49 bz2.c
--- bz2.c 19 Apr 2002 10:06:41 -0000 1.49
+++ bz2.c 31 May 2002 21:25:10 -0000
@@ -170,18 +170,15 @@
#ifdef VIRTUAL_DIR
virtual_filepath(path, &path_copy TSRMLS_CC);
#else
- path_copy = estrdup(path);
+ path_copy = path;
#endif
/* try and open it directly first */
bz_file = BZ2_bzopen(path_copy, mode);
- if (opened_path == NULL) {
- efree(path_copy);
- } else if (bz_file) {
- *opened_path = path_copy;
+ if (bz_file && opened_path != NULL) {
+ *opened_path = estrdup(path_copy);
}
- path_copy = NULL;
if (bz_file == NULL) {
/* that didn't work, so try and get something from the network/wrapper
*/
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php