https://git.reactos.org/?p=reactos.git;a=commitdiff;h=b0a1cb52becb67f4839de…
commit b0a1cb52becb67f4839deba5b82f02c3f543adee
Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com>
AuthorDate: Tue Aug 28 19:45:03 2018 +0900
Commit: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito(a)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",