https://git.reactos.org/?p=reactos.git;a=commitdiff;h=214a9cb660b375c4629b1e6816686308f34dd6f5

commit 214a9cb660b375c4629b1e6816686308f34dd6f5
Author:     Katayama Hirofumi MZ <katayama.hirofumi...@gmail.com>
AuthorDate: Fri Feb 14 02:03:35 2020 +0900
Commit:     GitHub <nore...@github.com>
CommitDate: Thu Feb 13 18:03:35 2020 +0100

    [NFSD][TELNETD][LIBTIRPC][MAN] Don't hardcode C:\ReactOS (#2334)
    
    CORE-14747
---
 base/services/nfsd/idmap.c                        | 4 +++-
 base/services/nfsd/nfs41_daemon.c                 | 3 ++-
 base/services/telnetd/telnetd.c                   | 2 +-
 dll/3rdparty/libtirpc/src/wintirpc.c              | 9 +++++++++
 dll/3rdparty/libtirpc/tirpc/netconfig.h           | 5 +++++
 modules/rosapps/applications/sysutils/man/man.cmd | 2 +-
 6 files changed, 21 insertions(+), 4 deletions(-)

diff --git a/base/services/nfsd/idmap.c b/base/services/nfsd/idmap.c
index 18f44b94278..838d4cfc95b 100644
--- a/base/services/nfsd/idmap.c
+++ b/base/services/nfsd/idmap.c
@@ -381,7 +381,9 @@ static int config_init(
     }
     else
     {
-        StringCchCopyA(config_path, ARRAYSIZE(config_path), 
"C:\\ReactOS\\system32\\drivers\\etc\\ms-nfs41-idmap.conf");
+        status = GetLastError();
+        eprintf("GetSystemDirectoryA failed with %ld\n", GetLastError());
+        goto out;
     }
 #endif
 
diff --git a/base/services/nfsd/nfs41_daemon.c 
b/base/services/nfsd/nfs41_daemon.c
index 1a8f2dfbbe2..73b54d31d59 100644
--- a/base/services/nfsd/nfs41_daemon.c
+++ b/base/services/nfsd/nfs41_daemon.c
@@ -177,7 +177,8 @@ static bool_t check_for_files()
     }
     else
     {
-        StringCchCopyA(config_path, ARRAYSIZE(config_path), 
"C:\\ReactOS\\system32\\drivers\\etc\\netconfig");
+        eprintf("GetSystemDirectoryA failed with error %ld\n", GetLastError());
+        return FALSE;
     }
 
     fd = fopen(config_path, "r");
diff --git a/base/services/telnetd/telnetd.c b/base/services/telnetd/telnetd.c
index 927d2862ade..180cce5dce4 100644
--- a/base/services/telnetd/telnetd.c
+++ b/base/services/telnetd/telnetd.c
@@ -377,7 +377,7 @@ static void RunShell(client_t *client)
       }
       else
       {
-         StringCchCopyA(cmd_path, ARRAYSIZE(cmd_path), 
"C:\\ReactOS\\system32\\cmd.exe");
+         ErrorExit("GetSystemDirectoryA failed\n");
       }
    }
 
diff --git a/dll/3rdparty/libtirpc/src/wintirpc.c 
b/dll/3rdparty/libtirpc/src/wintirpc.c
index 98d327f461e..a7845fa1d55 100644
--- a/dll/3rdparty/libtirpc/src/wintirpc.c
+++ b/dll/3rdparty/libtirpc/src/wintirpc.c
@@ -93,6 +93,9 @@ BOOL winsock_fini(void)
        return TRUE;
 }
 
+#ifdef __REACTOS__
+char NETCONFIG[MAX_PATH] = "";
+#endif
 BOOL WINAPI DllMain/*tirpc_main*/(HINSTANCE hinstDLL,  // DLL module handle
                                           DWORD fdwReason,     // reason called
                                           LPVOID lpvReserved)  // reserved
@@ -109,6 +112,12 @@ BOOL WINAPI DllMain/*tirpc_main*/(HINSTANCE hinstDLL,      
// DLL module handle
                // The DLL is loading due to process
                // initialization or a call to LoadLibrary. 
         case DLL_PROCESS_ATTACH:
+#ifdef __REACTOS__
+            if (!GetSystemDirectoryA(NETCONFIG, ARRAYSIZE(NETCONFIG)))
+                return FALSE;
+
+            lstrcatA(NETCONFIG, "\\drivers\\etc\\netconfig");
+#endif
                        
                        // Initialize socket library
                        if (winsock_init() == FALSE)
diff --git a/dll/3rdparty/libtirpc/tirpc/netconfig.h 
b/dll/3rdparty/libtirpc/tirpc/netconfig.h
index 8461a6b0621..21f2820ae29 100644
--- a/dll/3rdparty/libtirpc/tirpc/netconfig.h
+++ b/dll/3rdparty/libtirpc/tirpc/netconfig.h
@@ -3,8 +3,13 @@
 
 //#include <features.h>
 
+#ifdef __REACTOS__
+    #undef NETCONFIG
+    extern char NETCONFIG[];
+#else
 // XXX Should be in, or come from, the registry!!!
 #define NETCONFIG "C:\\ReactOS\\System32\\drivers\\etc\\netconfig"
+#endif
 #define NETPATH          "NETPATH"
 
 struct netconfig {
diff --git a/modules/rosapps/applications/sysutils/man/man.cmd 
b/modules/rosapps/applications/sysutils/man/man.cmd
index 1533a49d32d..5790656e9aa 100755
--- a/modules/rosapps/applications/sysutils/man/man.cmd
+++ b/modules/rosapps/applications/sysutils/man/man.cmd
@@ -13,7 +13,7 @@ rem   []------------------------------------[]
 rem []==[Config area]==[]
 set MANED=edit
 set MANMORE=cat
-set MAN=c:\ReactOS\man
+set MAN=%WINDIR%\man
 rem []==[End of config area]==[]
 
 goto chk_param

Reply via email to