]> granicus.if.org Git - php/commitdiff
Fix last maybe uninit warnings on 7.4
authorNikita Popov <nikita.ppv@gmail.com>
Mon, 15 Apr 2019 09:35:13 +0000 (11:35 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Mon, 15 Apr 2019 09:35:13 +0000 (11:35 +0200)
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...

Zend/zend_vm_def.h
Zend/zend_vm_execute.h
ext/pdo/pdo_stmt.c
ext/simplexml/simplexml.c
ext/sockets/conversions.c
ext/standard/php_fopen_wrapper.c
sapi/cli/php_cli_server.c

index 21d5651cb8d80704cebaad7ed33023a37b5c5843..9d6c5dd589533b3dbc1f2369c7a5f26a206983bc 100644 (file)
@@ -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));
index a84ae4ec7543ce398ba70e5453003f10e665984e..e9810db9d1c137cb72a2f1b9b3ce1e053e9c038c 100644 (file)
@@ -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));
index 98d9d2dd6883732dfb4c7b7ea514c1ebc2a6590e..25dd33bfdf8117876418f5d308540b78f25cd189 100644 (file)
@@ -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) {
index b7eaf90de60a3d80d482c39b589a1347c3af4b9f..e8ba1f505a0bc7911bc10a0dc61f7aab3fba9747 100644 (file)
@@ -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);
                }
index 6eede2b20a79f96a691e43e03ea12cda94fe37f5..a9f287a8eaac95f6a53b433ef9fbe90589f0f721 100644 (file)
@@ -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;
index 36fe523d92d7a3c4ee5a3f955aebf47dd5be040e..053f8417ec3df9c9e41b7fdec4a988be4a20ea7a 100644 (file)
@@ -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
index 46ba86e9c2bda326d388349f65d84eba636cfee1..6889278bcac700b8eefa329ad6250b47244855ef 100644 (file)
@@ -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) {