]> granicus.if.org Git - php/commitdiff
add error check and fix leak
authorAnatol Belski <ab@php.net>
Mon, 29 Aug 2016 15:25:46 +0000 (17:25 +0200)
committerAnatol Belski <ab@php.net>
Mon, 29 Aug 2016 15:25:46 +0000 (17:25 +0200)
ext/standard/proc_open.c

index e443ec64a65809a307577fa87c80c881e563aeb0..95803c9bbd4ac41afbf6788003f1fb9e6997141a 100644 (file)
@@ -753,9 +753,14 @@ PHP_FUNCTION(proc_open)
 
                len = (sizeof(COMSPEC_NT) + sizeof(" /c ") + tmp_len + 1);
                cmdw2 = (wchar_t *)malloc(len * sizeof(wchar_t));
+               if (!cmdw2) {
+                       php_error_docref(NULL, E_WARNING, "Command conversion failed");
+                       goto exit_fail;
+               }
                ret = _snwprintf(cmdw2, len, L"%hs /c %s", COMSPEC_NT, cmdw);
 
                if (-1 == ret) {
+                       free(cmdw2);
                        php_error_docref(NULL, E_WARNING, "Command conversion failed");
                        goto exit_fail;
                }