Module: wine Branch: master Commit: ae32b2f45243462971d4581a0214d4834e715cf2 URL: https://gitlab.winehq.org/wine/wine/-/commit/ae32b2f45243462971d4581a0214d48...
Author: Piotr Caban piotr@codeweavers.com Date: Thu Nov 30 11:41:51 2023 +0100
msvcrt: Initialize writable environment block in env_set.
---
dlls/msvcrt/environ.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/dlls/msvcrt/environ.c b/dlls/msvcrt/environ.c index 9e358d971f9..063a9254c67 100644 --- a/dlls/msvcrt/environ.c +++ b/dlls/msvcrt/environ.c @@ -155,6 +155,7 @@ static int env_set(char **env, wchar_t **wenv) GetLastError() != ERROR_ENVVAR_NOT_FOUND) return -1;
+ if (env_init(FALSE, TRUE)) return -1; *eq = 0; idx = env_get_index(*env); *eq = '='; @@ -180,6 +181,8 @@ static int env_set(char **env, wchar_t **wenv) }
if (!MSVCRT__wenviron) return 0; + if (MSVCRT__wenviron == MSVCRT___winitenv) + if (env_init(TRUE, TRUE)) return -1; idx = wenv_get_index(*wenv); *weq = '='; if (!weq[1]) @@ -264,11 +267,6 @@ static int putenv_helper(const char *name, const char *val, const char *eq) char *env; int r;
- _lock(_ENV_LOCK); - r = env_init(FALSE, TRUE); - _unlock(_ENV_LOCK); - if (r) return -1; - if (eq) { env = strdup(name);