From 1aa9a02506288f7ae8be50b7f43863dd1878e0ac Mon Sep 17 00:00:00 2001 From: Naveen M K Date: Sat, 19 Mar 2022 15:32:54 +0530 Subject: [PATCH 134/N] Revert "PC/launcher.c: Use function available in original msvcrt.dll" This reverts commit 1fb7e56d33a4e9813b67a66995baad3bf16b7320. --- PC/launcher.c | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/PC/launcher.c b/PC/launcher.c index b8dea55..734e753 100644 --- a/PC/launcher.c +++ b/PC/launcher.c @@ -925,7 +925,7 @@ static COMMAND path_command; static COMMAND * find_on_path(wchar_t * name) { wchar_t * pathext; - size_t requiredSize; + size_t varsize; wchar_t * context = NULL; wchar_t * extension; COMMAND * result = NULL; @@ -941,23 +941,19 @@ static COMMAND * find_on_path(wchar_t * name) } } else { - _wgetenv_s(&requiredSize, NULL, 0, L"PATHEXT"); - if (requiredSize > 0) { - pathext = (wchar_t *)malloc(requiredSize * sizeof(wchar_t)); - /* No extension - search using registered extensions. */ - rc = _wgetenv_s(&requiredSize, pathext, requiredSize, L"PATHEXT"); - if (rc == 0) { - extension = wcstok_s(pathext, L";", &context); - while (extension) { - len = SearchPathW(NULL, name, extension, MSGSIZE, path_command.value, NULL); - if (len) { - result = &path_command; - break; - } - extension = wcstok_s(NULL, L";", &context); + /* No extension - search using registered extensions. */ + rc = _wdupenv_s(&pathext, &varsize, L"PATHEXT"); + if (rc == 0) { + extension = wcstok_s(pathext, L";", &context); + while (extension) { + len = SearchPathW(NULL, name, extension, MSGSIZE, path_command.value, NULL); + if (len) { + result = &path_command; + break; } - free(pathext); + extension = wcstok_s(NULL, L";", &context); } + free(pathext); } } return result; @@ -1914,7 +1910,7 @@ process(int argc, wchar_t ** argv) if (_wfopen_s(&f, venv_cfg_path, L"r")) { error(RC_BAD_VENV_CFG, L"Cannot read '%ls'", venv_cfg_path); } - cb = fread(buffer, sizeof(buffer[0]), + cb = fread_s(buffer, sizeof(buffer), sizeof(buffer[0]), sizeof(buffer) / sizeof(buffer[0]), f); fclose(f); -- 2.36.1