mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
Merge branch 'PHP-8.5'
* PHP-8.5: zip: Don't truncate return value of zip_fread() with user sizes
This commit is contained in:
@@ -1303,7 +1303,6 @@ PHP_FUNCTION(zip_entry_read)
|
|||||||
zend_long len = 0;
|
zend_long len = 0;
|
||||||
zip_read_rsrc * zr_rsrc;
|
zip_read_rsrc * zr_rsrc;
|
||||||
zend_string *buffer;
|
zend_string *buffer;
|
||||||
int n = 0;
|
|
||||||
|
|
||||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "r|l", &zip_entry, &len) == FAILURE) {
|
if (zend_parse_parameters(ZEND_NUM_ARGS(), "r|l", &zip_entry, &len) == FAILURE) {
|
||||||
RETURN_THROWS();
|
RETURN_THROWS();
|
||||||
@@ -1319,7 +1318,7 @@ PHP_FUNCTION(zip_entry_read)
|
|||||||
|
|
||||||
if (zr_rsrc->zf) {
|
if (zr_rsrc->zf) {
|
||||||
buffer = zend_string_safe_alloc(1, len, 0, false);
|
buffer = zend_string_safe_alloc(1, len, 0, false);
|
||||||
n = zip_fread(zr_rsrc->zf, ZSTR_VAL(buffer), ZSTR_LEN(buffer));
|
zip_int64_t n = zip_fread(zr_rsrc->zf, ZSTR_VAL(buffer), ZSTR_LEN(buffer));
|
||||||
if (n > 0) {
|
if (n > 0) {
|
||||||
ZSTR_VAL(buffer)[n] = '\0';
|
ZSTR_VAL(buffer)[n] = '\0';
|
||||||
ZSTR_LEN(buffer) = n;
|
ZSTR_LEN(buffer) = n;
|
||||||
@@ -2781,8 +2780,6 @@ static void php_zip_get_from(INTERNAL_FUNCTION_PARAMETERS, int type) /* {{{ */
|
|||||||
zend_string *filename;
|
zend_string *filename;
|
||||||
zend_string *buffer;
|
zend_string *buffer;
|
||||||
|
|
||||||
int n = 0;
|
|
||||||
|
|
||||||
if (type == 1) {
|
if (type == 1) {
|
||||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "P|ll", &filename, &len, &flags) == FAILURE) {
|
if (zend_parse_parameters(ZEND_NUM_ARGS(), "P|ll", &filename, &len, &flags) == FAILURE) {
|
||||||
RETURN_THROWS();
|
RETURN_THROWS();
|
||||||
@@ -2819,7 +2816,7 @@ static void php_zip_get_from(INTERNAL_FUNCTION_PARAMETERS, int type) /* {{{ */
|
|||||||
}
|
}
|
||||||
|
|
||||||
buffer = zend_string_safe_alloc(1, len, 0, false);
|
buffer = zend_string_safe_alloc(1, len, 0, false);
|
||||||
n = zip_fread(zf, ZSTR_VAL(buffer), ZSTR_LEN(buffer));
|
zip_int64_t n = zip_fread(zf, ZSTR_VAL(buffer), ZSTR_LEN(buffer));
|
||||||
if (n < 1) {
|
if (n < 1) {
|
||||||
zend_string_efree(buffer);
|
zend_string_efree(buffer);
|
||||||
RETURN_EMPTY_STRING();
|
RETURN_EMPTY_STRING();
|
||||||
|
|||||||
Reference in New Issue
Block a user