ZEND_GET_MODULE(php_zlib)
#endif
+/* {{{ Memory management wrappers */
+
+static voidpf php_zlib_alloc(voidpf opaque, uInt items, uInt size)
+{
+ return (voidpf)safe_emalloc(items, size, 0);
+}
+
+static void php_zlib_free(voidpf opaque, voidpf address)
+{
+ efree((void*)address);
+}
+/* }}} */
+
/* {{{ OnUpdate_zlib_output_compression */
static PHP_INI_MH(OnUpdate_zlib_output_compression)
{
}
stream.data_type = Z_ASCII;
- stream.zalloc = (alloc_func) Z_NULL;
- stream.zfree = (free_func) Z_NULL;
+ stream.zalloc = php_zlib_alloc;
+ stream.zfree = php_zlib_free;
stream.opaque = (voidpf) Z_NULL;
stream.next_in = (Bytef *) data;
that should be enaugh for all real life cases
*/
- stream.zalloc = (alloc_func) Z_NULL;
- stream.zfree = (free_func) Z_NULL;
+ stream.zalloc = php_zlib_alloc;
+ stream.zfree = php_zlib_free;
do {
length = plength ? plength : (unsigned long)data_len * (1 << factor++);
int err;
if (do_start) {
- ZLIBG(stream).zalloc = Z_NULL;
- ZLIBG(stream).zfree = Z_NULL;
+ ZLIBG(stream).zalloc = php_zlib_alloc;
+ ZLIBG(stream).zfree = php_zlib_free;
ZLIBG(stream).opaque = Z_NULL;
switch (ZLIBG(compression_coding)) {
RETURN_FALSE;
}
- stream.zalloc = Z_NULL;
- stream.zfree = Z_NULL;
+ stream.zalloc = php_zlib_alloc;
+ stream.zfree = php_zlib_free;
stream.opaque = Z_NULL;
stream.next_in = (Bytef *) data;