[PATCH] D25946: [compiler-rt][asan] Add support for desallocation of unhandled pointers
Etienne Bergeron via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Feb 14 08:51:03 PST 2017
etienneb added a comment.
For this given snippet:
#include <windows.h>
#include <iostream>
int main(int argc, char* argv[]) {
char *p1 = (char*)HeapAlloc(GetProcessHeap(), 0, 12);
char *p2 = p1 + 7;
BOOL b1 = HeapValidate(GetProcessHeap(), 0, NULL);
BOOL b2 = HeapValidate(GetProcessHeap(), 0, p1);
BOOL b3 = HeapValidate(GetProcessHeap(), 0, p2);
std::cout << "result: " << b1 << " " << b2 << " " << b3 << std::endl;
}
The result is:
result: 1 1 0
HeapValidate is triggering a breakpoint with an invalid address:
_RtlpBreakPointHeap at 4:
77CA06F9 mov edi,edi
77CA06FB push ebp
77CA06FC mov ebp,esp
77CA06FE mov eax,dword ptr fs:[00000018h]
77CA0704 mov eax,dword ptr [eax+30h]
77CA0707 cmp byte ptr [eax+2],0
77CA070B je _RtlpBreakPointHeap at 4+2Bh (77CA0724h)
77CA070D mov eax,dword ptr [ebp+8]
77CA0710 mov byte ptr ds:[77CD92A5h],1
77CA0717 mov dword ptr ds:[77CD92A0h],eax
77CA071C int 3 <<---- debugger is breaking here
77CA071D mov byte ptr ds:[77CD92A5h],0
77CA0724 pop ebp
77CA0725 ret 4
https://reviews.llvm.org/D25946
More information about the llvm-commits
mailing list