fix php extention memory leak in PHP 7
parent
96036f5e2e
commit
8765998114
|
|
@ -2929,6 +2929,11 @@ static int php_fdfs_download_callback(void *arg, const int64_t file_size, \
|
||||||
zval ret;
|
zval ret;
|
||||||
zval null_args;
|
zval null_args;
|
||||||
int result;
|
int result;
|
||||||
|
#if PHP_MAJOR_VERSION >= 7
|
||||||
|
zend_string *sz_data;
|
||||||
|
bool use_heap_data;
|
||||||
|
#endif
|
||||||
|
|
||||||
TSRMLS_FETCH();
|
TSRMLS_FETCH();
|
||||||
|
|
||||||
INIT_ZVAL(ret);
|
INIT_ZVAL(ret);
|
||||||
|
|
@ -2937,11 +2942,12 @@ static int php_fdfs_download_callback(void *arg, const int64_t file_size, \
|
||||||
INIT_ZVAL(zfilesize);
|
INIT_ZVAL(zfilesize);
|
||||||
ZVAL_LONG(&zfilesize, file_size);
|
ZVAL_LONG(&zfilesize, file_size);
|
||||||
|
|
||||||
INIT_ZVAL(zdata);
|
|
||||||
#if PHP_MAJOR_VERSION < 7
|
#if PHP_MAJOR_VERSION < 7
|
||||||
|
INIT_ZVAL(zdata);
|
||||||
ZVAL_STRINGL(&zdata, (char *)data, current_size, 0);
|
ZVAL_STRINGL(&zdata, (char *)data, current_size, 0);
|
||||||
#else
|
#else
|
||||||
ZVAL_STRINGL(&zdata, (char *)data, current_size);
|
ZSTR_ALLOCA_INIT(sz_data, (char *)data, current_size, use_heap_data);
|
||||||
|
ZVAL_NEW_STR(&zdata, sz_data);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
pCallback = (php_fdfs_callback_t *)arg;
|
pCallback = (php_fdfs_callback_t *)arg;
|
||||||
|
|
@ -2980,6 +2986,10 @@ static int php_fdfs_download_callback(void *arg, const int64_t file_size, \
|
||||||
result = EINVAL;
|
result = EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if PHP_MAJOR_VERSION >= 7
|
||||||
|
ZSTR_ALLOCA_FREE(sz_data, use_heap_data);
|
||||||
|
#endif
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue