about summary refs log tree commit diff stats
path: root/src/wrapped/wrappedlibc.c
diff options
context:
space:
mode:
authorYang Liu <liuyang22@iscas.ac.cn>2025-08-31 00:10:10 +0800
committerGitHub <noreply@github.com>2025-08-30 18:10:10 +0200
commit373d778f6abf943f779328daa0a2b425d6469077 (patch)
treefa7a4becf8a0a2129a1e699594469808de75faa5 /src/wrapped/wrappedlibc.c
parentfcd1aacef02a75ec74ff17edfcdb3ea46a9b4d2e (diff)
downloadbox64-373d778f6abf943f779328daa0a2b425d6469077.tar.gz
box64-373d778f6abf943f779328daa0a2b425d6469077.zip
[WRAPPER] Wrapped mallinfo2 for libc (#2983)
Diffstat (limited to 'src/wrapped/wrappedlibc.c')
-rw-r--r--src/wrapped/wrappedlibc.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/wrapped/wrappedlibc.c b/src/wrapped/wrappedlibc.c
index f5a2771f..742ae677 100644
--- a/src/wrapped/wrappedlibc.c
+++ b/src/wrapped/wrappedlibc.c
@@ -3190,6 +3190,22 @@ EXPORT void* my_mallinfo(x64emu_t* emu, void* p)
     return p;
 }
 
+typedef struct mallinfo2 (*mallinfo2_fnc)(void);
+EXPORT void* my_mallinfo2(x64emu_t* emu, void* p)
+{
+    static mallinfo2_fnc f = NULL;
+    static int inited = 0;
+    if(!inited) {
+        inited = 1;
+        f = (mallinfo2_fnc)dlsym(my_lib->w.lib, "mallinfo2");
+    }
+    if(f)
+        *(struct mallinfo2*)p=f();
+    else
+        memset(p, 0, sizeof(struct mallinfo2));
+    return p;
+}
+
 #ifdef STATICBUILD
 void my_updateGlobalOpt() {}
 void my_checkGlobalOpt() {}