summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnatol Belski <ab@php.net>2017-11-27 21:18:54 +0100
committerAnatol Belski <ab@php.net>2017-11-27 21:18:54 +0100
commiteb0cc77133522000072791937d5bd71866099ab1 (patch)
treedd07dad3ac15eb1ae5fbf6255973ceafaeebedb3
parent3c0bd0014d27014203a4d685feb4e664672c3b69 (diff)
parent06202f0feba76a6248dbece73fc28c678b4cf57a (diff)
downloadphp-git-eb0cc77133522000072791937d5bd71866099ab1.tar.gz
Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1: Fix allocation Fix memory leak
-rw-r--r--ext/standard/basic_functions.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c
index b70d1971a0..fc47383784 100644
--- a/ext/standard/basic_functions.c
+++ b/ext/standard/basic_functions.c
@@ -4088,15 +4088,17 @@ PHP_FUNCTION(getenv)
size = GetEnvironmentVariableW(keyw, &dummybuf, 0);
if (GetLastError() == ERROR_ENVVAR_NOT_FOUND) {
/* The environment variable doesn't exist. */
+ free(keyw);
RETURN_FALSE;
}
if (size == 0) {
/* env exists, but it is empty */
+ free(keyw);
RETURN_EMPTY_STRING();
}
- valw = emalloc(size);
+ valw = emalloc((size + 1) * sizeof(wchar_t));
size = GetEnvironmentVariableW(keyw, valw, size);
if (size == 0) {
/* has been removed between the two calls */