From: Nikita Popov Date: Mon, 15 Apr 2019 09:35:13 +0000 (+0200) Subject: Fix last maybe uninit warnings on 7.4 X-Git-Tag: php-7.4.0alpha1~496 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7f6c22cb3d207db0937a8f67e51bee031ba47314;p=php Fix last maybe uninit warnings on 7.4 Most of these only occur under GCC 5. Not fond of all the workarounds (especially the PDO one), but it gets us a clean build... --- diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 21d5651cb8..9d6c5dd589 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -7932,7 +7932,7 @@ ZEND_VM_HANDLER(157, ZEND_FETCH_CLASS_NAME, UNUSED|CLASS_FETCH, ANY) ZEND_VM_HANDLER(158, ZEND_CALL_TRAMPOLINE, ANY, ANY) { - zend_array *args; + zend_array *args = NULL; zend_function *fbc = EX(func); zval *ret = EX(return_value); uint32_t call_info = EX_CALL_INFO() & (ZEND_CALL_NESTED | ZEND_CALL_TOP | ZEND_CALL_RELEASE_THIS); @@ -7963,7 +7963,7 @@ ZEND_VM_HANDLER(158, ZEND_CALL_TRAMPOLINE, ANY, ANY) ZEND_CALL_NUM_ARGS(call) = 2; ZVAL_STR(ZEND_CALL_ARG(call, 1), fbc->common.function_name); - if (num_args) { + if (args) { ZVAL_ARR(ZEND_CALL_ARG(call, 2), args); } else { ZVAL_EMPTY_ARRAY(ZEND_CALL_ARG(call, 2)); diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index a84ae4ec75..e9810db9d1 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -2134,7 +2134,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSERT_CHECK_SPEC_HANDLER(ZEND static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CALL_TRAMPOLINE_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { - zend_array *args; + zend_array *args = NULL; zend_function *fbc = EX(func); zval *ret = EX(return_value); uint32_t call_info = EX_CALL_INFO() & (ZEND_CALL_NESTED | ZEND_CALL_TOP | ZEND_CALL_RELEASE_THIS); @@ -2165,7 +2165,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CALL_TRAMPOLINE_SPEC_HANDLER(Z ZEND_CALL_NUM_ARGS(call) = 2; ZVAL_STR(ZEND_CALL_ARG(call, 1), fbc->common.function_name); - if (num_args) { + if (args) { ZVAL_ARR(ZEND_CALL_ARG(call, 2), args); } else { ZVAL_EMPTY_ARRAY(ZEND_CALL_ARG(call, 2)); diff --git a/ext/pdo/pdo_stmt.c b/ext/pdo/pdo_stmt.c index 98d9d2dd68..25dd33bfdf 100644 --- a/ext/pdo/pdo_stmt.c +++ b/ext/pdo/pdo_stmt.c @@ -819,7 +819,7 @@ static int do_fetch(pdo_stmt_t *stmt, int do_bind, zval *return_value, enum pdo_ { int flags, idx, old_arg_count = 0; zend_class_entry *ce = NULL, *old_ce = NULL; - zval grp_val, *pgrp, retval, old_ctor_args; + zval grp_val, *pgrp, retval, old_ctor_args = {0}; int colno; if (how == PDO_FETCH_USE_DEFAULT) { diff --git a/ext/simplexml/simplexml.c b/ext/simplexml/simplexml.c index b7eaf90de6..e8ba1f505a 100644 --- a/ext/simplexml/simplexml.c +++ b/ext/simplexml/simplexml.c @@ -1016,6 +1016,7 @@ static int sxe_prop_is_empty(zval *object) /* {{{ */ zval iter_data; int test; int is_empty; + int use_iter = 0; sxe = Z_SXEOBJ_P(object); @@ -1052,6 +1053,7 @@ static int sxe_prop_is_empty(zval *object) /* {{{ */ ZVAL_COPY_VALUE(&iter_data, &sxe->iter.data); ZVAL_UNDEF(&sxe->iter.data); node = php_sxe_reset_iterator(sxe, 0); + use_iter = 1; } } @@ -1080,7 +1082,7 @@ static int sxe_prop_is_empty(zval *object) /* {{{ */ is_empty = 0; break; next_iter: - if (!Z_ISUNDEF(iter_data)) { + if (use_iter) { node = php_sxe_iterator_fetch(sxe, node->next, 0); } else { node = node->next; @@ -1088,7 +1090,7 @@ next_iter: } } - if (!Z_ISUNDEF(iter_data)) { + if (use_iter) { if (!Z_ISUNDEF(sxe->iter.data)) { zval_ptr_dtor(&sxe->iter.data); } diff --git a/ext/sockets/conversions.c b/ext/sockets/conversions.c index 6eede2b20a..a9f287a8ea 100644 --- a/ext/sockets/conversions.c +++ b/ext/sockets/conversions.c @@ -701,6 +701,9 @@ static void from_zval_write_sockaddr_aux(const zval *container, zval *elem; int fill_sockaddr; + *sockaddr_ptr = NULL; + *sockaddr_len = 0; + if (Z_TYPE_P(container) != IS_ARRAY) { do_from_zval_err(ctx, "%s", "expected an array here"); return; diff --git a/ext/standard/php_fopen_wrapper.c b/ext/standard/php_fopen_wrapper.c index 36fe523d92..053f8417ec 100644 --- a/ext/standard/php_fopen_wrapper.c +++ b/ext/standard/php_fopen_wrapper.c @@ -181,7 +181,7 @@ php_stream * php_stream_url_wrap_php(php_stream_wrapper *wrapper, const char *pa int fd = -1; int mode_rw = 0; php_stream * stream = NULL; - char *p, *token, *pathdup; + char *p, *token = NULL, *pathdup; zend_long max_memory; FILE *file = NULL; #ifdef PHP_WIN32 diff --git a/sapi/cli/php_cli_server.c b/sapi/cli/php_cli_server.c index 46ba86e9c2..6889278bca 100644 --- a/sapi/cli/php_cli_server.c +++ b/sapi/cli/php_cli_server.c @@ -1448,6 +1448,7 @@ static void normalize_vpath(char **retval, size_t *retval_len, const char *vpath char *p; *retval = NULL; + *retval_len = 0; decoded_vpath = pestrndup(vpath, vpath_len, persistent); if (!decoded_vpath) {