diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/wrapped/generated/functions_list.txt | 3 | ||||
| -rw-r--r-- | src/wrapped/generated/wrappedlibctypes.h | 2 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.c | 1 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.h | 1 | ||||
| -rwxr-xr-x | src/wrapped/wrappedlibc.c | 18 | ||||
| -rwxr-xr-x | src/wrapped/wrappedlibc_private.h | 4 |
6 files changed, 17 insertions, 12 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index c01b2f2a..60466ca5 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -2185,6 +2185,7 @@ #() iFEvpp -> iFEpp #() pFEppv -> pFEpp #() iFEpvpp -> iFEppp +#() iFEpvpA -> iFEppA #() iFEpvvppp -> iFEpppp #() iFEpLvvpp -> iFEpLpp #() iFEpuvvppp -> iFEpuppp @@ -2994,10 +2995,12 @@ wrappedlibc: - sscanf - swscanf - iFppA: + - __vfwprintf_chk - obstack_vprintf - vasprintf - vfprintf - vfscanf + - vfwprintf - vsprintf - vsscanf - vswscanf diff --git a/src/wrapped/generated/wrappedlibctypes.h b/src/wrapped/generated/wrappedlibctypes.h index 452c2515..b5f9a09b 100644 --- a/src/wrapped/generated/wrappedlibctypes.h +++ b/src/wrapped/generated/wrappedlibctypes.h @@ -190,10 +190,12 @@ typedef int64_t (*iFppipppp_t)(void*, void*, int64_t, void*, void*, void*, void* GO(sprintf, iFppV_t) \ GO(sscanf, iFppV_t) \ GO(swscanf, iFppV_t) \ + GO(__vfwprintf_chk, iFppA_t) \ GO(obstack_vprintf, iFppA_t) \ GO(vasprintf, iFppA_t) \ GO(vfprintf, iFppA_t) \ GO(vfscanf, iFppA_t) \ + GO(vfwprintf, iFppA_t) \ GO(vsprintf, iFppA_t) \ GO(vsscanf, iFppA_t) \ GO(vswscanf, iFppA_t) \ diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c index 53d69bbb..c76d7240 100644 --- a/src/wrapped/generated/wrapper.c +++ b/src/wrapped/generated/wrapper.c @@ -4425,6 +4425,7 @@ void pFEv(x64emu_t *emu, uintptr_t fcn) { pFE_t fn = (pFE_t)fcn; R_RAX=(uintptr_ void iFEvpp(x64emu_t *emu, uintptr_t fcn) { iFEpp_t fn = (iFEpp_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RSI, (void*)R_RDX); } void pFEppv(x64emu_t *emu, uintptr_t fcn) { pFEpp_t fn = (pFEpp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI); } void iFEpvpp(x64emu_t *emu, uintptr_t fcn) { iFEppp_t fn = (iFEppp_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (void*)R_RDX, (void*)R_RCX); } +void iFEpvpA(x64emu_t *emu, uintptr_t fcn) { iFEppA_t fn = (iFEppA_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (void*)R_RDX, (void*)R_RCX); } void iFEpvvppp(x64emu_t *emu, uintptr_t fcn) { iFEpppp_t fn = (iFEpppp_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (void*)R_RCX, (void*)R_R8, (void*)R_R9); } void iFEpLvvpp(x64emu_t *emu, uintptr_t fcn) { iFEpLpp_t fn = (iFEpLpp_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (uintptr_t)R_RSI, (void*)R_R8, (void*)R_R9); } void iFEpuvvppp(x64emu_t *emu, uintptr_t fcn) { iFEpuppp_t fn = (iFEpuppp_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (uint64_t)R_RSI, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); } diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h index 68007379..aade6242 100644 --- a/src/wrapped/generated/wrapper.h +++ b/src/wrapped/generated/wrapper.h @@ -2231,6 +2231,7 @@ void pFEv(x64emu_t *emu, uintptr_t fnc); void iFEvpp(x64emu_t *emu, uintptr_t fnc); void pFEppv(x64emu_t *emu, uintptr_t fnc); void iFEpvpp(x64emu_t *emu, uintptr_t fnc); +void iFEpvpA(x64emu_t *emu, uintptr_t fnc); void iFEpvvppp(x64emu_t *emu, uintptr_t fnc); void iFEpLvvpp(x64emu_t *emu, uintptr_t fnc); void iFEpuvvppp(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped/wrappedlibc.c b/src/wrapped/wrappedlibc.c index ec20ae2c..12bea956 100755 --- a/src/wrapped/wrappedlibc.c +++ b/src/wrapped/wrappedlibc.c @@ -583,7 +583,6 @@ EXPORT int my_vprintf(x64emu_t *emu, void* fmt, x64_va_list_t b) { EXPORT int my___vprintf_chk(x64emu_t *emu, void* fmt, x64_va_list_t b) __attribute__((alias("my_vprintf"))); EXPORT int my_vfprintf(x64emu_t *emu, void* F, void* fmt, x64_va_list_t b) { - (void)emu; #ifdef CONVERT_VALIST CONVERT_VALIST(b); #else @@ -646,19 +645,18 @@ EXPORT int my___fwprintf_chk(x64emu_t *emu, void* F, int flag, void* fmt, void* return vfwprintf(F, fmt, VARARGS); } -#if 0 -EXPORT int my_vfwprintf(x64emu_t *emu, void* F, void* fmt, void* b) { - #ifndef NOALIGN - myStackAlignW((const char*)fmt, b, emu->scratch); - PREPARE_VALIST; - void* f = vfwprintf; - return ((iFppp_t)f)(F, fmt, VARARGS); +EXPORT int my_vfwprintf(x64emu_t *emu, void* F, void* fmt, x64_va_list_t b) { + #ifdef CONVERT_VALIST + CONVERT_VALIST(b); #else - void* f = vfwprintf; - return ((iFppp_t)f)(F, fmt, b); + myStackAlignWValist(emu, (const char*)fmt, emu->scratch, b); + PREPARE_VALIST; #endif + return vfwprintf(F, fmt, VARARGS); } +EXPORT int my___vfwprintf_chk(x64emu_t *emu, void* F, void* fmt, x64_va_list_t b) __attribute__((alias("my_vprintf"))); +#if 0 EXPORT int my_vwprintf(x64emu_t *emu, void* fmt, void* b) { #ifndef NOALIGN myStackAlignW((const char*)fmt, b, emu->scratch); diff --git a/src/wrapped/wrappedlibc_private.h b/src/wrapped/wrappedlibc_private.h index 4f240c56..5dd58cbc 100755 --- a/src/wrapped/wrappedlibc_private.h +++ b/src/wrapped/wrappedlibc_private.h @@ -2057,8 +2057,8 @@ GOM(vfprintf, iFEppA) GOM(__vfprintf_chk, iFEpvpp) //GO(__vfscanf, GOWM(vfscanf, iFEppA) -//GOW(vfwprintf, iFppA) -//GO(__vfwprintf_chk, +GOWM(vfwprintf, iFEppA) +GOM(__vfwprintf_chk, iFEpvpA) //GOW(vfwscanf, iFppA) GO(vhangup, iFv) //GO(vlimit, // Deprecated |