https://git.reactos.org/?p=reactos.git;a=commitdiff;h=b0a1cb52becb67f4839deb...
commit b0a1cb52becb67f4839deba5b82f02c3f543adee Author: Katayama Hirofumi MZ katayama.hirofumi.mz@gmail.com AuthorDate: Tue Aug 28 19:45:03 2018 +0900 Commit: Hermès BÉLUSCA - MAÏTO hermes.belusca-maito@reactos.org CommitDate: Tue Aug 28 12:45:03 2018 +0200
[TCPSVCS] Remove hardcoded C drive letter (#800)
CORE-13228, CORE-13235
For USETUP, add a comment about why the code uses it when adding a boot-sector boot entry to NTLDR. CORE-13226 --- base/services/tcpsvcs/log.c | 12 +++++++++--- base/services/tcpsvcs/tcpsvcs.h | 1 + base/setup/usetup/bootsup.c | 2 ++ 3 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/base/services/tcpsvcs/log.c b/base/services/tcpsvcs/log.c index 3b2d467d71..ef25909b0b 100644 --- a/base/services/tcpsvcs/log.c +++ b/base/services/tcpsvcs/log.c @@ -12,7 +12,7 @@ #define DEBUG
static LPWSTR lpEventSource = L"tcpsvcs"; -static LPCWSTR lpLogFileName = L"C:\tcpsvcs_log.log"; +static WCHAR szLogFileName[MAX_PATH]; static HANDLE hLogFile = NULL;
static OVERLAPPED olWrite; @@ -47,7 +47,7 @@ LogToEventLog(LPCWSTR lpMsg, static BOOL OpenLogFile() { - hLogFile = CreateFileW(lpLogFileName, + hLogFile = CreateFileW(szLogFileName, GENERIC_WRITE, FILE_SHARE_READ, NULL, @@ -212,13 +212,19 @@ InitLogging() #ifdef DEBUG BOOL bRet = FALSE;
+ if (!GetEnvironmentVariableW(L"SystemDrive", szLogFileName, ARRAYSIZE(szLogFileName))) + { + StringCchCopyW(szLogFileName, ARRAYSIZE(szLogFileName), L"C:"); + } + StringCchCatW(szLogFileName, ARRAYSIZE(szLogFileName), L"\tcpsvcs_log.log"); + ZeroMemory(&olWrite, sizeof(OVERLAPPED)); olWrite.Offset = 0xFFFFFFFF; olWrite.OffsetHigh = 0xFFFFFFFF; olWrite.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL); if (olWrite.hEvent) { - DeleteFileW(lpLogFileName); + DeleteFileW(szLogFileName);
if (OpenLogFile()) { diff --git a/base/services/tcpsvcs/tcpsvcs.h b/base/services/tcpsvcs/tcpsvcs.h index b024e7c251..9c5b16b5ce 100644 --- a/base/services/tcpsvcs/tcpsvcs.h +++ b/base/services/tcpsvcs/tcpsvcs.h @@ -9,6 +9,7 @@ #define _INC_WINDOWS #include <winsock2.h> #include <tchar.h> +#include <strsafe.h>
#define LOG_FILE 1 #define LOG_EVENTLOG 2 diff --git a/base/setup/usetup/bootsup.c b/base/setup/usetup/bootsup.c index 309e096d39..37cd680029 100644 --- a/base/setup/usetup/bootsup.c +++ b/base/setup/usetup/bootsup.c @@ -2378,6 +2378,8 @@ InstallFatBootcodeToPartition( /* Update 'boot.ini' */ CombinePaths(DstPath, ARRAYSIZE(DstPath), 2, SystemRootPath->Buffer, L"boot.ini");
+ /* Windows' NTLDR loads an external bootsector file when the specified drive + letter is C:, otherwise it will interpret it as a boot DOS path specifier. */ DPRINT1("Update 'boot.ini': %S\n", DstPath); Status = UpdateBootIni(DstPath, L"C:\bootsect.ros",