[Bug 50993] App compiled with address sanitizer don't work in Wine

WineHQ Bugzilla wine-bugs at winehq.org
Thu May 6 10:26:02 CDT 2021


https://bugs.winehq.org/show_bug.cgi?id=50993

--- Comment #3 from Roman Pišl <rpisl at seznam.cz> ---
Created attachment 69964
  --> https://bugs.winehq.org/attachment.cgi?id=69964
Fix for clang address sanitizer

Hi, I tried this some time ago and the problem was that AddressSanitizer could
not intercept some functions (see
compiler-rt/lib/interception/interception_win.cpp). 

Since LLVM/Clang can be now compiled under Wine (version 6.7) just by
installing LLVM12, CMake + MSVC libs, I gave it another chance
(wine-6.7-274-ge2aa30f21de, llvm trunk) and discovered that just a small fix
can make it work - see attached patch. With this fix, following code:

#include <malloc.h>
int main()
{
  char* buf = (char*) malloc(10);
  free(buf);
  return buf[1];
}

is properly detected while running in Wine as:
==428==ERROR: AddressSanitizer: heap-use-after-free on address 0x7eafe3e001b1
at pc 0x000140001056 bp 0x00000011fd60 sp 0x00000011fda8
READ of size 1 at 0x7eafe3e001b1 thread T0
    #0 0x140001055 in main Z:\mnt\data\src\llvm\llvm-test\main.cpp:8
...

So I think that this is not a Wine bug and it should be reported/fixed it in
upstream LLVM.

I also think that bug 49828 is a duplicate.

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.


More information about the wine-bugs mailing list