[PHP-CVS] cvs: php-src /ext/zlib zlib_filter.c

2009-05-19 Thread Kalle Sommer Nielsen
kalle   Tue May 19 16:12:04 2009 UTC

  Modified files:  
/php-src/ext/zlib   zlib_filter.c 
  Log:
  Fix compiler warnings (only in HEAD)
  
http://cvs.php.net/viewvc.cgi/php-src/ext/zlib/zlib_filter.c?r1=1.26r2=1.27diff_format=u
Index: php-src/ext/zlib/zlib_filter.c
diff -u php-src/ext/zlib/zlib_filter.c:1.26 php-src/ext/zlib/zlib_filter.c:1.27
--- php-src/ext/zlib/zlib_filter.c:1.26 Tue Mar 10 23:39:52 2009
+++ php-src/ext/zlib/zlib_filter.c  Tue May 19 16:12:04 2009
@@ -16,7 +16,7 @@
+--+
 */
 
-/* $Id: zlib_filter.c,v 1.26 2009/03/10 23:39:52 helly Exp $ */
+/* $Id: zlib_filter.c,v 1.27 2009/05/19 16:12:04 kalle Exp $ */
 
 #include php.h
 #include php_zlib.h
@@ -88,7 +88,7 @@
}
 
bucket = php_stream_bucket_make_writeable(buckets_in-head 
TSRMLS_CC);
-   while (bin  bucket-buflen) {
+   while (bin  (unsigned int) bucket-buflen) {
 
if (data-finished) {
consumed += bucket-buflen;
@@ -220,7 +220,7 @@
 
bucket = php_stream_bucket_make_writeable(bucket TSRMLS_CC);
 
-   while (bin  bucket-buflen) {
+   while (bin  (unsigned int) bucket-buflen) {
desired = bucket-buflen - bin;
if (desired  data-inbuf_len) {
desired = data-inbuf_len;



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



[PHP-CVS] cvs: php-src /ext/zlib zlib_filter.c

2008-02-12 Thread Greg Beaver
cellog  Tue Feb 12 23:27:46 2008 UTC

  Modified files:  
/php-src/ext/zlib   zlib_filter.c 
  Log:
  fix potential memleak due to destruction of filterparams zval
  
http://cvs.php.net/viewvc.cgi/php-src/ext/zlib/zlib_filter.c?r1=1.22r2=1.23diff_format=u
Index: php-src/ext/zlib/zlib_filter.c
diff -u php-src/ext/zlib/zlib_filter.c:1.22 php-src/ext/zlib/zlib_filter.c:1.23
--- php-src/ext/zlib/zlib_filter.c:1.22 Sat Jan 12 22:28:04 2008
+++ php-src/ext/zlib/zlib_filter.c  Tue Feb 12 23:27:46 2008
@@ -16,7 +16,7 @@
+--+
 */
 
-/* $Id: zlib_filter.c,v 1.22 2008/01/12 22:28:04 cellog Exp $ */
+/* $Id: zlib_filter.c,v 1.23 2008/02/12 23:27:46 cellog Exp $ */
 
 #include php.h
 #include php_zlib.h
@@ -332,15 +332,17 @@
 
if ((Z_TYPE_P(filterparams) == IS_ARRAY || 
Z_TYPE_P(filterparams) == IS_OBJECT) 
zend_hash_find(HASH_OF(filterparams), window, 
sizeof(window), (void **) tmpzval) == SUCCESS) {
+   zval tmp;
+
/* log-2 base of history window (9 - 15) */
-   SEPARATE_ZVAL(tmpzval);
-   convert_to_long_ex(tmpzval);
-   if (Z_LVAL_PP(tmpzval)  -MAX_WBITS || 
Z_LVAL_PP(tmpzval)  MAX_WBITS + 32) {
-   php_error_docref(NULL TSRMLS_CC, 
E_WARNING, Invalid parameter give for window size. (%ld), Z_LVAL_PP(tmpzval));
+   tmp = **tmpzval;
+   zval_copy_ctor(tmp);
+   convert_to_long(tmp);
+   if (Z_LVAL(tmp)  -MAX_WBITS || Z_LVAL(tmp)  
MAX_WBITS + 32) {
+   php_error_docref(NULL TSRMLS_CC, 
E_WARNING, Invalid parameter give for window size. (%ld), Z_LVAL(tmp));
} else {
-   windowBits = Z_LVAL_PP(tmpzval);
+   windowBits = Z_LVAL(tmp);
}
-   zval_ptr_dtor(tmpzval);
}
}
 
@@ -364,27 +366,33 @@
case IS_ARRAY:
case IS_OBJECT:
if 
(zend_hash_find(HASH_OF(filterparams), memory, sizeof(memory), (void**) 
tmpzval) == SUCCESS) {
+   zval tmp;
+   
+   tmp = **tmpzval;
+   zval_copy_ctor(tmp);
+   convert_to_long(tmp);
+
/* Memory Level (1 - 9) */
-   SEPARATE_ZVAL(tmpzval);
-   convert_to_long_ex(tmpzval);
-   if (Z_LVAL_PP(tmpzval)  1 || 
Z_LVAL_PP(tmpzval)  MAX_MEM_LEVEL) {
-   php_error_docref(NULL 
TSRMLS_CC, E_WARNING, Invalid parameter give for memory level. (%ld), 
Z_LVAL_PP(tmpzval));
+   if (Z_LVAL(tmp)  1 || 
Z_LVAL(tmp)  MAX_MEM_LEVEL) {
+   php_error_docref(NULL 
TSRMLS_CC, E_WARNING, Invalid parameter give for memory level. (%ld), 
Z_LVAL(tmp));
} else {
-   memLevel = 
Z_LVAL_PP(tmpzval);
+   memLevel = Z_LVAL(tmp);
}
-   zval_ptr_dtor(tmpzval);
}
 
if 
(zend_hash_find(HASH_OF(filterparams), window, sizeof(window), (void**) 
tmpzval) == SUCCESS) {
+   zval tmp;
+   
+   tmp = **tmpzval;
+   zval_copy_ctor(tmp);
+   convert_to_long(tmp);
+
/* log-2 base of history window 
(9 - 15) */
-   SEPARATE_ZVAL(tmpzval);
-   convert_to_long_ex(tmpzval);
-   if (Z_LVAL_PP(tmpzval)  
-MAX_WBITS || Z_LVAL_PP(tmpzval)  MAX_WBITS + 16) {
-   php_error_docref(NULL 
TSRMLS_CC, E_WARNING, Invalid parameter give for window size. (%ld), 
Z_LVAL_PP(tmpzval));
+   if (Z_LVAL(tmp)  

[PHP-CVS] cvs: php-src /ext/zlib zlib_filter.c

2008-01-12 Thread Greg Beaver
cellog  Sat Jan 12 22:28:04 2008 UTC

  Modified files:  
/php-src/ext/zlib   zlib_filter.c 
  Log:
  wrong file version merged in fix for Bug #40189, here is the correct fix
  
http://cvs.php.net/viewvc.cgi/php-src/ext/zlib/zlib_filter.c?r1=1.21r2=1.22diff_format=u
Index: php-src/ext/zlib/zlib_filter.c
diff -u php-src/ext/zlib/zlib_filter.c:1.21 php-src/ext/zlib/zlib_filter.c:1.22
--- php-src/ext/zlib/zlib_filter.c:1.21 Sat Jan 12 22:03:44 2008
+++ php-src/ext/zlib/zlib_filter.c  Sat Jan 12 22:28:04 2008
@@ -16,7 +16,7 @@
+--+
 */
 
-/* $Id: zlib_filter.c,v 1.21 2008/01/12 22:03:44 cellog Exp $ */
+/* $Id: zlib_filter.c,v 1.22 2008/01/12 22:28:04 cellog Exp $ */
 
 #include php.h
 #include php_zlib.h
@@ -106,7 +106,7 @@
data-strm.avail_in = 0;
bin += desired;
 
-   if (status == Z_STREAM_END || data-strm.avail_out  
data-outbuf_len) {
+   if (data-strm.avail_out  data-outbuf_len) {
php_stream_bucket *out_bucket;
size_t bucketlen = data-outbuf_len - 
data-strm.avail_out;
out_bucket = php_stream_bucket_new(stream, 
estrndup(data-outbuf, bucketlen), bucketlen, 1, 0 TSRMLS_CC);
@@ -114,12 +114,12 @@
data-strm.avail_out = data-outbuf_len;
data-strm.next_out = data-outbuf;
exit_status = PSFS_PASS_ON;
-   if (status == Z_STREAM_END  
data-strm.avail_out = data-outbuf_len) {
-   /* no more data to decompress, and 
nothing was spat out */
-   php_stream_bucket_delref(bucket 
TSRMLS_CC);
-   return PSFS_PASS_ON;
-   }
+   } else if (status == Z_STREAM_END  
data-strm.avail_out = data-outbuf_len) {
+   /* no more data to decompress, and nothing was 
spat out */
+   php_stream_bucket_delref(bucket TSRMLS_CC);
+   return PSFS_PASS_ON;
}
+
}
consumed += bucket-buflen;
php_stream_bucket_delref(bucket TSRMLS_CC);

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



[PHP-CVS] cvs: php-src /ext/zlib zlib_filter.c

2008-01-09 Thread Greg Beaver
cellog  Wed Jan  9 08:12:15 2008 UTC

  Modified files:  
/php-src/ext/zlib   zlib_filter.c 
  Log:
  apply proper fix of bug #43793 to zlib.deflate (window+16 = gzip)
  
http://cvs.php.net/viewvc.cgi/php-src/ext/zlib/zlib_filter.c?r1=1.18r2=1.19diff_format=u
Index: php-src/ext/zlib/zlib_filter.c
diff -u php-src/ext/zlib/zlib_filter.c:1.18 php-src/ext/zlib/zlib_filter.c:1.19
--- php-src/ext/zlib/zlib_filter.c:1.18 Wed Jan  9 07:03:48 2008
+++ php-src/ext/zlib/zlib_filter.c  Wed Jan  9 08:12:15 2008
@@ -16,7 +16,7 @@
+--+
 */
 
-/* $Id: zlib_filter.c,v 1.18 2008/01/09 07:03:48 cellog Exp $ */
+/* $Id: zlib_filter.c,v 1.19 2008/01/09 08:12:15 cellog Exp $ */
 
 #include php.h
 #include php_zlib.h
@@ -379,7 +379,7 @@
/* log-2 base of history window 
(9 - 15) */
SEPARATE_ZVAL(tmpzval);
convert_to_long_ex(tmpzval);
-   if (Z_LVAL_PP(tmpzval)  
-MAX_WBITS || Z_LVAL_PP(tmpzval)  MAX_WBITS + 32) {
+   if (Z_LVAL_PP(tmpzval)  
-MAX_WBITS || Z_LVAL_PP(tmpzval)  MAX_WBITS + 16) {
php_error_docref(NULL 
TSRMLS_CC, E_WARNING, Invalid parameter give for window size. (%ld), 
Z_LVAL_PP(tmpzval));
} else {
windowBits = 
Z_LVAL_PP(tmpzval);

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



[PHP-CVS] cvs: php-src /ext/zlib zlib_filter.c /ext/zlib/tests zlib_filter_inflate2.phpt

2008-01-08 Thread Greg Beaver
cellog  Wed Jan  9 06:42:56 2008 UTC

  Added files: 
/php-src/ext/zlib/tests zlib_filter_inflate2.phpt 

  Modified files:  
/php-src/ext/zlib   zlib_filter.c 
  Log:
  fix Bug #43793: zlib filter is unable to auto-detect gzip/zlib file headers
  
http://cvs.php.net/viewvc.cgi/php-src/ext/zlib/zlib_filter.c?r1=1.16r2=1.17diff_format=u
Index: php-src/ext/zlib/zlib_filter.c
diff -u php-src/ext/zlib/zlib_filter.c:1.16 php-src/ext/zlib/zlib_filter.c:1.17
--- php-src/ext/zlib/zlib_filter.c:1.16 Mon Dec 31 07:12:18 2007
+++ php-src/ext/zlib/zlib_filter.c  Wed Jan  9 06:42:56 2008
@@ -16,7 +16,7 @@
+--+
 */
 
-/* $Id: zlib_filter.c,v 1.16 2007/12/31 07:12:18 sebastian Exp $ */
+/* $Id: zlib_filter.c,v 1.17 2008/01/09 06:42:56 cellog Exp $ */
 
 #include php.h
 #include php_zlib.h
@@ -335,7 +335,7 @@
/* log-2 base of history window (9 - 15) */
SEPARATE_ZVAL(tmpzval);
convert_to_long_ex(tmpzval);
-   if (Z_LVAL_PP(tmpzval)  -MAX_WBITS || 
Z_LVAL_PP(tmpzval)  MAX_WBITS) {
+   if (Z_LVAL_PP(tmpzval)  -MAX_WBITS || 
Z_LVAL_PP(tmpzval)  MAX_WBITS + 32) {
php_error_docref(NULL TSRMLS_CC, 
E_WARNING, Invalid parameter give for window size. (%ld), Z_LVAL_PP(tmpzval));
} else {
windowBits = Z_LVAL_PP(tmpzval);

http://cvs.php.net/viewvc.cgi/php-src/ext/zlib/tests/zlib_filter_inflate2.phpt?view=markuprev=1.1
Index: php-src/ext/zlib/tests/zlib_filter_inflate2.phpt
+++ php-src/ext/zlib/tests/zlib_filter_inflate2.phpt
--TEST--
zlib.inflate of gzip-encoded stream
--SKIPIF--
?php if (!extension_loaded(zlib)) print skip; ?
--FILE--
?php /* $Id: zlib_filter_inflate2.phpt,v 1.1 2008/01/09 06:42:56 cellog Exp $ 
*/

$a = gzopen(dirname(__FILE__) . '/test.txt.gz', 'w');
fwrite($a, This is quite the thing ain't it\n);
fclose($a);

$fp = fopen(dirname(__FILE__) . '/test.txt.gz', 'r');
stream_filter_append($fp, 'zlib.inflate', STREAM_FILTER_READ);
echo fread($fp, 2000);
fclose($fp);
echo 1\n;
$fp = fopen(dirname(__FILE__) . '/test.txt.gz', 'r');
// zlib format
$fp = fopen(dirname(__FILE__) . '/test.txt.gz', 'r');
stream_filter_append($fp, 'zlib.inflate', STREAM_FILTER_READ, array('window' = 
15+16));
echo 2\n;
echo fread($fp, 2000);
fclose($fp);
// auto-detect
$fp = fopen(dirname(__FILE__) . '/test.txt.gz', 'r');
stream_filter_append($fp, 'zlib.inflate', STREAM_FILTER_READ, array('window' = 
15+32));
echo 3\n;
echo fread($fp, 2000);
fclose($fp);

?
--CLEAN--
?php
@unlink(dirname(__FILE__) . '/test.txt.gz');
?
--EXPECT--
1
2
This is quite the thing ain't it
3
This is quite the thing ain't it

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



[PHP-CVS] cvs: php-src /ext/zlib zlib_filter.c

2008-01-08 Thread Greg Beaver
cellog  Wed Jan  9 07:03:49 2008 UTC

  Modified files:  
/php-src/ext/zlib   zlib_filter.c 
  Log:
  apply same fix of bug #43793 to zlib.deflate
  
http://cvs.php.net/viewvc.cgi/php-src/ext/zlib/zlib_filter.c?r1=1.17r2=1.18diff_format=u
Index: php-src/ext/zlib/zlib_filter.c
diff -u php-src/ext/zlib/zlib_filter.c:1.17 php-src/ext/zlib/zlib_filter.c:1.18
--- php-src/ext/zlib/zlib_filter.c:1.17 Wed Jan  9 06:42:56 2008
+++ php-src/ext/zlib/zlib_filter.c  Wed Jan  9 07:03:48 2008
@@ -16,7 +16,7 @@
+--+
 */
 
-/* $Id: zlib_filter.c,v 1.17 2008/01/09 06:42:56 cellog Exp $ */
+/* $Id: zlib_filter.c,v 1.18 2008/01/09 07:03:48 cellog Exp $ */
 
 #include php.h
 #include php_zlib.h
@@ -379,7 +379,7 @@
/* log-2 base of history window 
(9 - 15) */
SEPARATE_ZVAL(tmpzval);
convert_to_long_ex(tmpzval);
-   if (Z_LVAL_PP(tmpzval)  
-MAX_WBITS || Z_LVAL_PP(tmpzval)  MAX_WBITS) {
+   if (Z_LVAL_PP(tmpzval)  
-MAX_WBITS || Z_LVAL_PP(tmpzval)  MAX_WBITS + 32) {
php_error_docref(NULL 
TSRMLS_CC, E_WARNING, Invalid parameter give for window size. (%ld), 
Z_LVAL_PP(tmpzval));
} else {
windowBits = 
Z_LVAL_PP(tmpzval);

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



[PHP-CVS] cvs: php-src /ext/zlib zlib_filter.c

2006-10-16 Thread Ilia Alshanetsky
iliaa   Mon Oct 16 15:42:23 2006 UTC

  Modified files:  
/php-src/ext/zlib   zlib_filter.c 
  Log:
  MFB: Fixed compiler warnings
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/zlib/zlib_filter.c?r1=1.12r2=1.13diff_format=u
Index: php-src/ext/zlib/zlib_filter.c
diff -u php-src/ext/zlib/zlib_filter.c:1.12 php-src/ext/zlib/zlib_filter.c:1.13
--- php-src/ext/zlib/zlib_filter.c:1.12 Sun Oct  8 13:34:24 2006
+++ php-src/ext/zlib/zlib_filter.c  Mon Oct 16 15:42:23 2006
@@ -16,7 +16,7 @@
+--+
 */
 
-/* $Id: zlib_filter.c,v 1.12 2006/10/08 13:34:24 bjori Exp $ */
+/* $Id: zlib_filter.c,v 1.13 2006/10/16 15:42:23 iliaa Exp $ */
 
 #include php.h
 #include php_zlib.h
@@ -292,7 +292,7 @@
/* Create this filter */
data = pecalloc(1, sizeof(php_zlib_filter_data), persistent);
if (!data) {
-   php_error_docref(NULL TSRMLS_CC, E_WARNING, Failed allocating 
%ld bytes, sizeof(php_zlib_filter_data));
+   php_error_docref(NULL TSRMLS_CC, E_WARNING, Failed allocating 
%zd bytes, sizeof(php_zlib_filter_data));
return NULL;
}
 
@@ -304,14 +304,14 @@
data-strm.avail_out = data-outbuf_len = data-inbuf_len = 2048;
data-strm.next_in = data-inbuf = (Bytef *) pemalloc(data-inbuf_len, 
persistent);
if (!data-inbuf) {
-   php_error_docref(NULL TSRMLS_CC, E_WARNING, Failed allocating 
%ld bytes, data-inbuf_len);
+   php_error_docref(NULL TSRMLS_CC, E_WARNING, Failed allocating 
%zd bytes, data-inbuf_len);
pefree(data, persistent);
return NULL;
}
data-strm.avail_in = 0;
data-strm.next_out = data-outbuf = (Bytef *) 
pemalloc(data-outbuf_len, persistent);
if (!data-outbuf) {
-   php_error_docref(NULL TSRMLS_CC, E_WARNING, Failed allocating 
%ld bytes, data-outbuf_len);
+   php_error_docref(NULL TSRMLS_CC, E_WARNING, Failed allocating 
%zd bytes, data-outbuf_len);
pefree(data-inbuf, persistent);
pefree(data, persistent);
return NULL;

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



[PHP-CVS] cvs: php-src /ext/zlib zlib_filter.c

2006-06-12 Thread Ilia Alshanetsky
iliaa   Mon Jun 12 23:28:44 2006 UTC

  Modified files:  
/php-src/ext/zlib   zlib_filter.c 
  Log:
  MFB: Fixed compiler warning
  
  
http://cvs.php.net/viewcvs.cgi/php-src/ext/zlib/zlib_filter.c?r1=1.10r2=1.11diff_format=u
Index: php-src/ext/zlib/zlib_filter.c
diff -u php-src/ext/zlib/zlib_filter.c:1.10 php-src/ext/zlib/zlib_filter.c:1.11
--- php-src/ext/zlib/zlib_filter.c:1.10 Mon Mar 13 04:40:11 2006
+++ php-src/ext/zlib/zlib_filter.c  Mon Jun 12 23:28:44 2006
@@ -16,7 +16,7 @@
+--+
 */
 
-/* $Id: zlib_filter.c,v 1.10 2006/03/13 04:40:11 pollita Exp $ */
+/* $Id: zlib_filter.c,v 1.11 2006/06/12 23:28:44 iliaa Exp $ */
 
 #include php.h
 #include php_zlib.h
@@ -292,7 +292,7 @@
/* Create this filter */
data = pecalloc(1, sizeof(php_zlib_filter_data), persistent);
if (!data) {
-   php_error_docref(NULL TSRMLS_CC, E_WARNING, Failed allocating 
%d bytes., sizeof(php_zlib_filter_data));
+   php_error_docref(NULL TSRMLS_CC, E_WARNING, Failed allocating 
%ld bytes., sizeof(php_zlib_filter_data));
return NULL;
}
 
@@ -304,14 +304,14 @@
data-strm.avail_out = data-outbuf_len = data-inbuf_len = 2048;
data-strm.next_in = data-inbuf = (Bytef *) pemalloc(data-inbuf_len, 
persistent);
if (!data-inbuf) {
-   php_error_docref(NULL TSRMLS_CC, E_WARNING, Failed allocating 
%d bytes., data-inbuf_len);
+   php_error_docref(NULL TSRMLS_CC, E_WARNING, Failed allocating 
%ld bytes., data-inbuf_len);
pefree(data, persistent);
return NULL;
}
data-strm.avail_in = 0;
data-strm.next_out = data-outbuf = (Bytef *) 
pemalloc(data-outbuf_len, persistent);
if (!data-outbuf) {
-   php_error_docref(NULL TSRMLS_CC, E_WARNING, Failed allocating 
%d bytes., data-outbuf_len);
+   php_error_docref(NULL TSRMLS_CC, E_WARNING, Failed allocating 
%ld bytes., data-outbuf_len);
pefree(data-inbuf, persistent);
pefree(data, persistent);
return NULL;

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



[PHP-CVS] cvs: php-src /ext/zlib zlib_filter.c

2005-11-22 Thread Sara Golemon
pollita Tue Nov 22 17:08:22 2005 EDT

  Modified files:  
/php-src/ext/zlib   zlib_filter.c 
  Log:
  MFB (r-1.6.2.1)
  
http://cvs.php.net/diff.php/php-src/ext/zlib/zlib_filter.c?r1=1.7r2=1.8ty=u
Index: php-src/ext/zlib/zlib_filter.c
diff -u php-src/ext/zlib/zlib_filter.c:1.7 php-src/ext/zlib/zlib_filter.c:1.8
--- php-src/ext/zlib/zlib_filter.c:1.7  Thu Aug 11 19:36:02 2005
+++ php-src/ext/zlib/zlib_filter.c  Tue Nov 22 17:08:22 2005
@@ -16,7 +16,7 @@
+--+
 */
 
-/* $Id: zlib_filter.c,v 1.7 2005/08/11 23:36:02 andrei Exp $ */
+/* $Id: zlib_filter.c,v 1.8 2005/11/22 22:08:22 pollita Exp $ */
 
 #include php.h
 #include php_zlib.h
@@ -320,7 +320,7 @@
data-strm.data_type = Z_ASCII;
 
if (strcasecmp(filtername, zlib.inflate) == 0) {
-   int windowBits = MAX_WBITS;
+   int windowBits = -MAX_WBITS;
 
if (filterparams) {
zval **tmpzval;
@@ -330,7 +330,7 @@
/* log-2 base of history window (9 - 15) */
SEPARATE_ZVAL(tmpzval);
convert_to_long_ex(tmpzval);
-   if (Z_LVAL_PP(tmpzval)  9 || 
Z_LVAL_PP(tmpzval)  MAX_WBITS) {
+   if (Z_LVAL_PP(tmpzval)  -MAX_WBITS || 
Z_LVAL_PP(tmpzval)  MAX_WBITS) {
php_error_docref(NULL TSRMLS_CC, 
E_WARNING, Invalid parameter give for window size. (%ld), Z_LVAL_PP(tmpzval));
} else {
windowBits = Z_LVAL_PP(tmpzval);
@@ -345,7 +345,7 @@
} else if (strcasecmp(filtername, zlib.deflate) == 0) {
/* RFC 1951 Deflate */
int level = Z_DEFAULT_COMPRESSION;
-   int windowBits = MAX_WBITS;
+   int windowBits = -MAX_WBITS;
int memLevel = MAX_MEM_LEVEL;
 
 
@@ -374,7 +374,7 @@
/* log-2 base of history window 
(9 - 15) */
SEPARATE_ZVAL(tmpzval);
convert_to_long_ex(tmpzval);
-   if (Z_LVAL_PP(tmpzval)  9 || 
Z_LVAL_PP(tmpzval)  MAX_WBITS) {
+   if (Z_LVAL_PP(tmpzval)  
-MAX_WBITS || Z_LVAL_PP(tmpzval)  MAX_WBITS) {
php_error_docref(NULL 
TSRMLS_CC, E_WARNING, Invalid parameter give for window size. (%ld), 
Z_LVAL_PP(tmpzval));
} else {
windowBits = 
Z_LVAL_PP(tmpzval);

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



[PHP-CVS] cvs: php-src /ext/zlib zlib_filter.c

2004-07-19 Thread Sara Golemon
pollita Tue Jul 20 01:08:53 2004 EDT

  Modified files:  
/php-src/ext/zlib   zlib_filter.c 
  Log:
  Make persistency safe
  
http://cvs.php.net/diff.php/php-src/ext/zlib/zlib_filter.c?r1=1.2r2=1.3ty=u
Index: php-src/ext/zlib/zlib_filter.c
diff -u php-src/ext/zlib/zlib_filter.c:1.2 php-src/ext/zlib/zlib_filter.c:1.3
--- php-src/ext/zlib/zlib_filter.c:1.2  Sun Jul 18 09:23:40 2004
+++ php-src/ext/zlib/zlib_filter.c  Tue Jul 20 01:08:52 2004
@@ -16,14 +16,16 @@
+--+
 */
 
-/* $Id: zlib_filter.c,v 1.2 2004/07/18 13:23:40 wez Exp $ */
+/* $Id: zlib_filter.c,v 1.3 2004/07/20 05:08:52 pollita Exp $ */
 
 #include php.h
 #include php_zlib.h
 
 /* {{{ data structure */
 
+/* Passed as opaque in malloc callbacks */
 typedef struct _php_zlib_filter_data {
+   int persistent;
z_stream strm;
char *inbuf;
size_t inbuf_len;
@@ -37,12 +39,12 @@
 
 static voidpf php_zlib_alloc(voidpf opaque, uInt items, uInt size)
 {
-   return (voidpf)safe_emalloc(items, size, 0);
+   return (voidpf)pemalloc(items * size, 
((php_zlib_filter_data*)opaque)-persistent);
 }
 
 static void php_zlib_free(voidpf opaque, voidpf address)
 {
-   efree((void*)address);
+   pefree((void*)address, ((php_zlib_filter_data*)opaque)-persistent);
 }
 /* }}} */
 
@@ -140,9 +142,9 @@
if (thisfilter  thisfilter-abstract) {
php_zlib_filter_data *data = thisfilter-abstract;
inflateEnd((data-strm));
-   efree(data-inbuf);
-   efree(data-outbuf);
-   efree(data);
+   pefree(data-inbuf, data-persistent);
+   pefree(data-outbuf, data-persistent);
+   pefree(data, data-persistent);
}
 }
 
@@ -248,9 +250,9 @@
if (thisfilter  thisfilter-abstract) {
php_zlib_filter_data *data = thisfilter-abstract;
deflateEnd((data-strm));
-   efree(data-inbuf);
-   efree(data-outbuf);
-   efree(data);
+   pefree(data-inbuf, data-persistent);
+   pefree(data-outbuf, data-persistent);
+   pefree(data, data-persistent);
}
 }
 
@@ -270,13 +272,8 @@
php_zlib_filter_data *data;
int status;
 
-   if (persistent) {
-   php_error_docref(NULL TSRMLS_CC, E_WARNING, this filter is not safe 
to use with a persistent stream);
-   return NULL;
-   }
-
/* Create this filter */
-   data = ecalloc(1, sizeof(php_zlib_filter_data));
+   data = pecalloc(1, sizeof(php_zlib_filter_data), persistent);
 
/* Circular reference */
data-strm.opaque = (voidpf) data;
@@ -284,9 +281,9 @@
data-strm.zalloc = (alloc_func) php_zlib_alloc;
data-strm.zfree = (free_func) php_zlib_free;
data-strm.avail_out = data-outbuf_len = data-inbuf_len = 2048;
-   data-strm.next_in = data-inbuf = (Bytef *) emalloc(data-inbuf_len);
+   data-strm.next_in = data-inbuf = (Bytef *) pemalloc(data-inbuf_len, 
persistent);
data-strm.avail_in = 0;
-   data-strm.next_out = data-outbuf = (Bytef *) emalloc(data-outbuf_len);
+   data-strm.next_out = data-outbuf = (Bytef *) pemalloc(data-outbuf_len, 
persistent);
data-strm.data_type = Z_ASCII;
 
if (strcasecmp(filtername, zlib.inflate) == 0) {
@@ -384,9 +381,9 @@
 
if (status != Z_OK) {
/* Unspecified (probably strm) error, let stream-filter error do its 
own whining */
-   efree(data-strm.next_in);
-   efree(data-strm.next_out);
-   efree(data);
+   pefree(data-strm.next_in, persistent);
+   pefree(data-strm.next_out, persistent);
+   pefree(data, persistent);
return NULL;
}
 

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