From 18d70db091d3b378be1e19b5709c72dedd9a5ae4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= Date: Wed, 27 Mar 2024 11:49:18 -0300 Subject: [PATCH] Fix gcc-14 Wcalloc-transposed-args warnings gcc-14 and later warns of inverted arguments in calloc or calloc-like __alloc_size__ annotated functions. Closes GH-13818. --- NEWS | 3 +++ ext/ffi/ffi.c | 4 ++-- ext/opcache/zend_accelerator_blacklist.c | 2 +- ext/standard/proc_open.c | 2 +- main/streams/glob_wrapper.c | 2 +- 5 files changed, 8 insertions(+), 5 deletions(-) diff --git a/NEWS b/NEWS index 7528021f82b..1aebd2b2a78 100644 --- a/NEWS +++ b/NEWS @@ -28,6 +28,9 @@ PHP NEWS . Fixed bug GH-13264 (Part 1 - Memory leak on stream filter failure). (Jakub Zelenka) +- Treewide: + . Fix gcc-14 Wcalloc-transposed-args warnings. (Cristian Rodríguez) + 11 Apr 2024, PHP 8.2.18 - Core: diff --git a/ext/ffi/ffi.c b/ext/ffi/ffi.c index 4f2bc890a0e..5c6ca05f961 100644 --- a/ext/ffi/ffi.c +++ b/ext/ffi/ffi.c @@ -2147,7 +2147,7 @@ static zend_result zend_ffi_cdata_get_closure(zend_object *obj, zend_class_entry if (EXPECTED(EG(trampoline).common.function_name == NULL)) { func = &EG(trampoline); } else { - func = ecalloc(sizeof(zend_internal_function), 1); + func = ecalloc(1, sizeof(zend_internal_function)); } func->type = ZEND_INTERNAL_FUNCTION; func->common.arg_flags[0] = 0; @@ -2898,7 +2898,7 @@ static zend_function *zend_ffi_get_func(zend_object **obj, zend_string *name, co if (EXPECTED(EG(trampoline).common.function_name == NULL)) { func = &EG(trampoline); } else { - func = ecalloc(sizeof(zend_internal_function), 1); + func = ecalloc(1, sizeof(zend_internal_function)); } func->common.type = ZEND_INTERNAL_FUNCTION; func->common.arg_flags[0] = 0; diff --git a/ext/opcache/zend_accelerator_blacklist.c b/ext/opcache/zend_accelerator_blacklist.c index 8ddc9298bf4..c4a543e6207 100644 --- a/ext/opcache/zend_accelerator_blacklist.c +++ b/ext/opcache/zend_accelerator_blacklist.c @@ -58,7 +58,7 @@ void zend_accel_blacklist_init(zend_blacklist *blacklist) zend_accel_blacklist_shutdown(blacklist); } - blacklist->entries = (zend_blacklist_entry *) calloc(sizeof(zend_blacklist_entry), blacklist->size); + blacklist->entries = (zend_blacklist_entry *) calloc(blacklist->size, sizeof(zend_blacklist_entry)); if (!blacklist->entries) { zend_accel_error_noreturn(ACCEL_LOG_FATAL, "Blacklist initialization: no memory\n"); return; diff --git a/ext/standard/proc_open.c b/ext/standard/proc_open.c index 866c7a3c896..69095dcd06d 100644 --- a/ext/standard/proc_open.c +++ b/ext/standard/proc_open.c @@ -646,7 +646,7 @@ static zend_string* get_command_from_array(HashTable *array, char ***argv, int n static descriptorspec_item* alloc_descriptor_array(HashTable *descriptorspec) { uint32_t ndescriptors = zend_hash_num_elements(descriptorspec); - return ecalloc(sizeof(descriptorspec_item), ndescriptors); + return ecalloc(ndescriptors, sizeof(descriptorspec_item)); } static zend_string* get_string_parameter(zval *array, int index, char *param_name) diff --git a/main/streams/glob_wrapper.c b/main/streams/glob_wrapper.c index 813e0bacdfd..45147f3fe61 100644 --- a/main/streams/glob_wrapper.c +++ b/main/streams/glob_wrapper.c @@ -225,7 +225,7 @@ static php_stream *php_glob_stream_opener(php_stream_wrapper *wrapper, const cha } } - pglob = ecalloc(sizeof(*pglob), 1); + pglob = ecalloc(1, sizeof(*pglob)); if (0 != (ret = glob(path, pglob->flags & GLOB_FLAGMASK, NULL, &pglob->glob))) { #ifdef GLOB_NOMATCH