Skip to content

Commit c029e71

Browse files
committed
fix if the hook is not called at the start of the process, the hook may fail
1 parent 81e6a5f commit c029e71

7 files changed

Lines changed: 534 additions & 49 deletions

File tree

samples/common.mak

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ CLIB=/MT
2323
!ENDIF
2424

2525
AFLAGS=/nologo /Zi /c /Fl
26-
CFLAGS=/nologo /Zi $(CLIB) /Gm- /W4 /WX /we4777 /we4800 /Od
26+
CFLAGS=/nologo /Zi $(CLIB) /Gm- /W4 /WX /we4777 /we4800 /Od /D__AUTO_CREATE_DETOUR_HEAP__
2727

2828
!IF $(DETOURS_SOURCE_BROWSING)==1
2929
CFLAGS=$(CFLAGS) /FR

src/creatwth.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -991,7 +991,7 @@ VOID CALLBACK DetourFinishHelperProcess(_In_ HWND,
991991
goto Cleanup;
992992
}
993993

994-
rlpDlls = new NOTHROW LPCSTR [s_pHelper->nDlls];
994+
rlpDlls = DetourCreateObjectArray<LPCSTR>(s_pHelper->nDlls);
995995
cSize = s_pHelper->cb - sizeof(DETOUR_EXE_HELPER);
996996
for (DWORD n = 0; n < s_pHelper->nDlls; n++) {
997997
size_t cchDest = 0;
@@ -1015,7 +1015,7 @@ VOID CALLBACK DetourFinishHelperProcess(_In_ HWND,
10151015

10161016
Cleanup:
10171017
if (rlpDlls != NULL) {
1018-
delete[] rlpDlls;
1018+
DetourDestroyObjectArray(rlpDlls);
10191019
rlpDlls = NULL;
10201020
}
10211021

@@ -1080,7 +1080,7 @@ BOOL WINAPI AllocExeHelper(_Out_ PDETOUR_EXE_HELPER *pHelper,
10801080
cSize += (DWORD)cchDest + 1;
10811081
}
10821082

1083-
Helper = (PDETOUR_EXE_HELPER) new NOTHROW BYTE[sizeof(DETOUR_EXE_HELPER) + cSize];
1083+
Helper = (PDETOUR_EXE_HELPER)DetourCreateObjectArray<BYTE>(sizeof(DETOUR_EXE_HELPER) + cSize);
10841084
if (Helper == NULL) {
10851085
goto Cleanup;
10861086
}
@@ -1145,7 +1145,7 @@ BOOL WINAPI AllocExeHelper(_Out_ PDETOUR_EXE_HELPER *pHelper,
11451145

11461146
Cleanup:
11471147
if (Helper != NULL) {
1148-
delete[] (PBYTE)Helper;
1148+
DetourDestroyObjectArray((PBYTE)Helper);
11491149
Helper = NULL;
11501150
}
11511151
return Result;
@@ -1155,7 +1155,7 @@ static
11551155
VOID WINAPI FreeExeHelper(PDETOUR_EXE_HELPER *pHelper)
11561156
{
11571157
if (*pHelper != NULL) {
1158-
delete[] (PBYTE)*pHelper;
1158+
DetourDestroyObjectArray((PBYTE)*pHelper);
11591159
*pHelper = NULL;
11601160
}
11611161
}

0 commit comments

Comments
 (0)