diff options
author | Anatol Belski <ab@php.net> | 2017-11-27 21:18:54 +0100 |
---|---|---|
committer | Anatol Belski <ab@php.net> | 2017-11-27 21:18:54 +0100 |
commit | eb0cc77133522000072791937d5bd71866099ab1 (patch) | |
tree | dd07dad3ac15eb1ae5fbf6255973ceafaeebedb3 | |
parent | 3c0bd0014d27014203a4d685feb4e664672c3b69 (diff) | |
parent | 06202f0feba76a6248dbece73fc28c678b4cf57a (diff) | |
download | php-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.c | 4 |
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 */ |