Piotr Caban : msvcrt: Add support for quoted paths in _searchenv_s.
Module: wine Branch: master Commit: 2e7ad72a8dae21aa5a16396c408007d48e43f5ec URL: https://source.winehq.org/git/wine.git/?a=commit;h=2e7ad72a8dae21aa5a16396c4... Author: Piotr Caban <piotr(a)codeweavers.com> Date: Wed Jan 29 13:42:11 2020 +0100 msvcrt: Add support for quoted paths in _searchenv_s. Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/msvcrt/dir.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/dlls/msvcrt/dir.c b/dlls/msvcrt/dir.c index d07fcd6c7d..806a2b0c85 100644 --- a/dlls/msvcrt/dir.c +++ b/dlls/msvcrt/dir.c @@ -1763,12 +1763,27 @@ int CDECL MSVCRT__searchenv_s(const char* file, const char* env, char *buf, MSVC for(; *penv; penv = (*end ? end + 1 : end)) { end = penv; - while(*end && *end != ';') end++; /* Find end of next path */ - path_len = end - penv; + path_len = 0; + while(*end && *end != ';' && path_len < MAX_PATH) + { + if (*end == '"') + { + end++; + while(*end && *end != '"' && path_len < MAX_PATH) + { + path[path_len++] = *end; + end++; + } + if (*end == '"') end++; + continue; + } + + path[path_len++] = *end; + end++; + } if (!path_len || path_len >= MAX_PATH) continue; - memcpy(path, penv, path_len); if (path[path_len - 1] != '/' && path[path_len - 1] != '\\') path[path_len++] = '\\'; if (path_len + fname_len >= MAX_PATH)
participants (1)
-
Alexandre Julliard