From 4059df0f2f3af326690efc2078f58266bd8b2deb Mon Sep 17 00:00:00 2001 From: Gina Peter Banyard Date: Fri, 28 Mar 2025 17:55:57 +0000 Subject: [PATCH] ext/ffi: Reduce scope of variables --- ext/ffi/ffi.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/ext/ffi/ffi.c b/ext/ffi/ffi.c index 50d6b1d46a7..42e48923da3 100644 --- a/ext/ffi/ffi.c +++ b/ext/ffi/ffi.c @@ -974,9 +974,7 @@ static void zend_ffi_callback_trampoline(ffi_cif* cif, void* ret, void** args, v } if (callback_data->arg_count) { - uint32_t n = 0; - - for (n = 0; n < callback_data->arg_count; n++) { + for (uint32_t n = 0; n < callback_data->arg_count; n++) { zval_ptr_dtor(&fci.params[n]); } } @@ -3064,8 +3062,6 @@ ZEND_METHOD(FFI, cdef) /* {{{ */ zend_string *lib = NULL; zend_ffi *ffi = NULL; DL_HANDLE handle = NULL; - char *err; - void *addr; ZEND_FFI_VALIDATE_API_RESTRICTION(); ZEND_PARSE_PARAMETERS_START(0, 2) @@ -3077,7 +3073,7 @@ ZEND_METHOD(FFI, cdef) /* {{{ */ if (lib) { handle = DL_LOAD(ZSTR_VAL(lib)); if (!handle) { - err = GET_DL_ERROR(); + char *err = GET_DL_ERROR(); #ifdef PHP_WIN32 if (err && err[0]) { zend_throw_error(zend_ffi_exception_ce, "Failed loading '%s' (%s)", ZSTR_VAL(lib), err); @@ -3125,6 +3121,7 @@ ZEND_METHOD(FFI, cdef) /* {{{ */ zend_ffi_symbol *sym; ZEND_HASH_MAP_FOREACH_STR_KEY_PTR(FFI_G(symbols), name, sym) { + void *addr; if (sym->kind == ZEND_FFI_SYM_VAR) { addr = DL_FETCH_SYMBOL(handle, ZSTR_VAL(name)); if (!addr) { @@ -3344,7 +3341,7 @@ static zend_ffi *zend_ffi_load(const char *filename, bool preload) /* {{{ */ { struct stat buf; int fd; - char *code, *code_pos, *scope_name, *lib, *err; + char *code, *code_pos, *scope_name, *lib; size_t code_size, scope_name_len; zend_ffi *ffi; DL_HANDLE handle = NULL; @@ -3352,7 +3349,6 @@ static zend_ffi *zend_ffi_load(const char *filename, bool preload) /* {{{ */ zend_string *name; zend_ffi_symbol *sym; zend_ffi_tag *tag; - void *addr; if (stat(filename, &buf) != 0) { if (preload) { @@ -3425,7 +3421,7 @@ static zend_ffi *zend_ffi_load(const char *filename, bool preload) /* {{{ */ if (preload) { zend_error(E_WARNING, "FFI: Failed pre-loading '%s'", lib); } else { - err = GET_DL_ERROR(); + char *err = GET_DL_ERROR(); #ifdef PHP_WIN32 if (err && err[0]) { zend_throw_error(zend_ffi_exception_ce, "Failed loading '%s' (%s)", lib, err); @@ -3459,6 +3455,7 @@ static zend_ffi *zend_ffi_load(const char *filename, bool preload) /* {{{ */ if (FFI_G(symbols)) { ZEND_HASH_MAP_FOREACH_STR_KEY_PTR(FFI_G(symbols), name, sym) { + void *addr; if (sym->kind == ZEND_FFI_SYM_VAR) { addr = DL_FETCH_SYMBOL(handle, ZSTR_VAL(name)); if (!addr) { @@ -5952,15 +5949,13 @@ void zend_ffi_resolve_typedef(const char *name, size_t name_len, zend_ffi_dcl *d void zend_ffi_resolve_const(const char *name, size_t name_len, zend_ffi_val *val) /* {{{ */ { - zend_ffi_symbol *sym; - if (UNEXPECTED(FFI_G(attribute_parsing))) { val->kind = ZEND_FFI_VAL_NAME; val->str = name; val->len = name_len; return; } else if (FFI_G(symbols)) { - sym = zend_hash_str_find_ptr(FFI_G(symbols), name, name_len); + zend_ffi_symbol *sym = zend_hash_str_find_ptr(FFI_G(symbols), name, name_len); if (sym && sym->kind == ZEND_FFI_SYM_CONST) { val->i64 = sym->value; switch (sym->type->kind) {