about summary refs log tree commit diff stats
path: root/src/tools/wine_tools.c
diff options
context:
space:
mode:
authorYang Liu <liuyang22@iscas.ac.cn>2025-05-06 19:45:38 +0800
committerGitHub <noreply@github.com>2025-05-06 13:45:38 +0200
commit8d7db7f1fb1002adf06a9a3a59302d6a8f8f989a (patch)
treefd5675bec67ddd8ecdc568b4de7885d53e8e8202 /src/tools/wine_tools.c
parent11563f3b62be60d443bcbcd33d02555ef6aa1ba5 (diff)
downloadbox64-8d7db7f1fb1002adf06a9a3a59302d6a8f8f989a.tar.gz
box64-8d7db7f1fb1002adf06a9a3a59302d6a8f8f989a.zip
Added a simple PE loaded dedicated for volatileMetadata (#2607)
Diffstat (limited to 'src/tools/wine_tools.c')
-rw-r--r--src/tools/wine_tools.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/src/tools/wine_tools.c b/src/tools/wine_tools.c
index 8b0edf14..86a91598 100644
--- a/src/tools/wine_tools.c
+++ b/src/tools/wine_tools.c
@@ -136,16 +136,11 @@ void dynarec_wine_prereserve()
 }
 #endif
 
-void DetectUnityPlayer(int fd)
+void DetectUnityPlayer(char* filename)
 {
     static int unityplayer_detected = 0;
-    if (fd > 0 && BOX64ENV(unityplayer) && !unityplayer_detected) {
-        char filename[4096];
-        char buf[128];
-        sprintf(buf, "/proc/self/fd/%d", fd);
-        ssize_t r = readlink(buf, filename, sizeof(filename) - 1);
-        if (r != -1) filename[r] = 0;
-        if (r > 0 && strlen(filename) > strlen("UnityPlayer.dll") && !strcasecmp(filename + strlen(filename) - strlen("UnityPlayer.dll"), "UnityPlayer.dll")) {
+    if (!filename && BOX64ENV(unityplayer) && !unityplayer_detected) {
+        if (strlen(filename) > strlen("UnityPlayer.dll") && !strcasecmp(filename + strlen(filename) - strlen("UnityPlayer.dll"), "UnityPlayer.dll")) {
             printf_log(LOG_NONE, "Detected UnityPlayer.dll\n");
 #ifdef DYNAREC
             if (!BOX64ENV(dynarec_strongmem)) {
@@ -156,4 +151,4 @@ void DetectUnityPlayer(int fd)
             unityplayer_detected = 1;
         }
     }
-}
\ No newline at end of file
+}