Piotr Caban : msvcrt: Add support for quoted paths in _searchenv_s.
Alexandre Julliard
julliard at winehq.org
Wed Jan 29 16:24:07 CST 2020
Module: wine
Branch: master
Commit: 2e7ad72a8dae21aa5a16396c408007d48e43f5ec
URL: https://source.winehq.org/git/wine.git/?a=commit;h=2e7ad72a8dae21aa5a16396c408007d48e43f5ec
Author: Piotr Caban <piotr at 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 at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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)
More information about the wine-cvs
mailing list