<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Apr 8, 2021 at 3:01 PM Mitch Phillips <<a href="mailto:mitchp@google.com">mitchp@google.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi Marko,<div><br></div><div>> Since MSan is usable as dso it would be very nice if you could patch /compiler-rt-$(VERSION).src/lib/msan/CMakeLists.txt in order to generate msan.so when compiling llvm from source (similar as for ASan or UBSan).</div><br><div>Given that this is a completely-unsupported model, I'd rather not do this.</div></div></blockquote><div><br></div><div>I don't mind providing MSan as a shared library (under -shared-libsan), we do the same for other sanitizers and it could be useful for other use cases.</div><div>I'm a bit concerned about the extra testing that would require.</div><div><br></div><div>But I suspect there may be more problems on your path than you realize. For example, even if you can annotate the entire interface boundary to update MSan shadow state, MSan would still intercept libc calls from uninstrumented code and will expect shadow to be consistent there as well.</div><div><br></div><div>Consider building the python interpreter with MSan instead.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>> Also, I believe there is a mistake in MSan documentation where it's said that static linking with MSan is not supported.</div><div><br></div><div>Slightly confusing wording, but the documentation means to say "MSan is not supported for static executables."</div><div><br></div><div>> I have situation where I want to use MSan with mixed code (Python->swig.cxx->native.so, as mentioned it is possible for ASan here), I'm using clang 7.0.1 and I keep getting DEADLYSIGNAL from MSan when trying to use it in that way.</div><br><div>I'm sorry - I'm not able to provide much help with this unsupported use case. I'm not surprised things are breaking :(.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Apr 8, 2021 at 2:42 AM Marko Stanojlovic <<a href="mailto:Marko.Stanojlovic@syrmia.com" target="_blank">Marko.Stanojlovic@syrmia.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">




<div dir="ltr">
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Hi Mitch,<br>
<br>
Thank you for quick response.</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Since MSan is usable as dso it would be very nice if you could patch /compiler-rt-$(VERSION).src/lib/msan/CMakeLists.txt in order to generate msan.so when compiling llvm from source (similar as for ASan or UBSan).<br>
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Also, I believe there is a mistake in <a href="https://clang.llvm.org/docs/MemorySanitizer.html#limitations" title="https://clang.llvm.org/docs/MemorySanitizer.html#limitations" target="_blank">
MSan documentation</a> where it's said that static linking with MSan is not supported.</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
I have situation where I want to use MSan with mixed code (Python->swig.cxx->native.so, as mentioned it is possible for ASan
<a href="https://github.com/google/sanitizers/wiki/AddressSanitizerAsDso#asan-and-ld_preload" title="https://github.com/google/sanitizers/wiki/AddressSanitizerAsDso#asan-and-ld_preload" target="_blank">
here</a>), I'm using clang 7.0.1 and I keep getting DEADLYSIGNAL from MSan when trying to use it in that way.</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Error message:<br>
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<span style="font-family:-apple-system,"Segoe UI","Segoe UI Emoji",sans-serif,Meiryo;font-size:14px;background-color:rgb(255,255,255);display:inline">MemorySanitizer:DEADLYSIGNAL</span><br>
<span style="font-family:-apple-system,"Segoe UI","Segoe UI Emoji",sans-serif,Meiryo;font-size:14px;background-color:rgb(255,255,255);display:inline">==17609==ERROR: MemorySanitizer: stack-overflow on address 0x7fffdd85afe8 (pc 0x7fbe5c948e34
 bp 0x7fffdd85b050 sp 0x7fffdd85afe0 T17609)</span><br style="background-color:rgb(255,255,255);font-family:-apple-system,"Segoe UI","Segoe UI Emoji",sans-serif,Meiryo;font-size:14px">
<span style="font-family:-apple-system,"Segoe UI","Segoe UI Emoji",sans-serif,Meiryo;font-size:14px;background-color:rgb(255,255,255);display:inline">MemorySanitizer:DEADLYSIGNAL</span><br style="background-color:rgb(255,255,255);font-family:-apple-system,"Segoe UI","Segoe UI Emoji",sans-serif,Meiryo;font-size:14px">
<span style="font-family:-apple-system,"Segoe UI","Segoe UI Emoji",sans-serif,Meiryo;font-size:14px;background-color:rgb(255,255,255);display:inline">MemorySanitizer: nested bug in the same thread, aborting.</span><br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<span style="font-family:-apple-system,"Segoe UI","Segoe UI Emoji",sans-serif,Meiryo;font-size:14px;background-color:rgb(255,255,255);display:inline"><br>
</span></div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<span style="font-family:-apple-system,"Segoe UI","Segoe UI Emoji",sans-serif,Meiryo;font-size:14px;background-color:rgb(255,255,255);display:inline">When I'm using ASan in the same way it works as expected.</span></div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<span style="font-family:-apple-system,"Segoe UI","Segoe UI Emoji",sans-serif,Meiryo;font-size:14px;background-color:rgb(255,255,255);display:inline"><br>
</span></div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<span style="font-family:-apple-system,"Segoe UI","Segoe UI Emoji",sans-serif,Meiryo;font-size:14px;background-color:rgb(255,255,255);display:inline">Kind regards,</span></div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<span style="font-family:-apple-system,"Segoe UI","Segoe UI Emoji",sans-serif,Meiryo;font-size:14px;background-color:rgb(255,255,255);display:inline"><span style="margin:0px;font-size:12pt;font-family:Calibri,Arial,Helvetica,sans-serif;color:black;background-color:rgb(255,255,255)">Marko
 Stanojlović</span>
<div style="margin:0px;font-size:12pt;font-family:Calibri,Arial,Helvetica,sans-serif;color:black;background-color:rgb(255,255,255)">
<br>
<span style="margin:0px;font-weight:300;font-family:Roboto,sans-serif;color:rgb(68,68,68);text-align:center;background-color:white;letter-spacing:1px">SYRMIA LLC @ Belgrade Office Park</span><br>
<span style="margin:0px;font-weight:300;font-family:Roboto,sans-serif;color:rgb(68,68,68);text-align:center;background-color:white;letter-spacing:1px">Djordja Stanojevica 12,</span><br>
<span style="margin:0px;font-weight:300;font-family:Roboto,sans-serif;color:rgb(68,68,68);text-align:center;background-color:white;letter-spacing:1px">Beograd 11070</span></div>
</span></div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div id="gmail-m_-8369134304686631216gmail-m_2447543031615537947appendonsend"></div>
<hr style="display:inline-block;width:98%">
<div id="gmail-m_-8369134304686631216gmail-m_2447543031615537947divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Mitch Phillips <<a href="mailto:mitchp@google.com" target="_blank">mitchp@google.com</a>><br>
<b>Sent:</b> Wednesday, April 7, 2021 9:09 PM<br>
<b>To:</b> Marko Stanojlovic <<a href="mailto:Marko.Stanojlovic@syrmia.com" target="_blank">Marko.Stanojlovic@syrmia.com</a>><br>
<b>Cc:</b> <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a> <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>><br>
<b>Subject:</b> Re: [llvm-dev] Using MSan as dso</font>
<div> </div>
</div>
<div>
<div dir="ltr">Hi Marko,
<div><br>
</div>
<div>Uninstrumented code under ASan leads to false negatives. Under MSan, uninstrumented code leads to false positives. MSan is thus not suitable to be used as a preloaded DSO.</div>
<div><br>
</div>
<div>If you're really, really, extremely dedicated and willing to <a href="https://clang.llvm.org/docs/MemorySanitizer.html#blacklist" target="_blank">
annotate</a> <i>every</i> instance where memory that's initialized in uninstrumented code flows to instrumented code, then you might be able to find some bugs. But it's worth bearing in mind that usage of MSan in this way is warranty-voiding.</div>
</div>
<br>
<div>
<div dir="ltr">On Wed, Apr 7, 2021 at 12:01 PM Marko Stanojlovic via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br>
</div>
<blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Hello llvm developers,</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Is there a way to use Memory Sanitizer when there is a third-party executable which cannot be recompiled,<br>
but it loads shared libraries that can be recompiled and we want to test them with MSan? In other words could be MSan used as dso?</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Similar to ASan usage described on its wiki page - <a href="https://github.com/google/sanitizers/wiki/AddressSanitizerAsDso" id="gmail-m_-8369134304686631216gmail-m_2447543031615537947x_gmail-m_-2048485037648791402LPlnk" target="_blank">https://github.com/google/sanitizers/wiki/AddressSanitizerAsDso</a>. </div>
<div></div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Kind regards and thanks<span style="background-color:rgb(255,255,255);display:inline"><span> </span>in advance</span> for response,</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Marko Stanojlović</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
<span style="color:rgb(68,68,68);font-family:Roboto,sans-serif;font-weight:300;letter-spacing:1px;text-align:center;background-color:rgb(255,255,255);display:inline">SYRMIA LLC @ Belgrade Office Park</span><br>
<span style="color:rgb(68,68,68);font-family:Roboto,sans-serif;font-weight:300;letter-spacing:1px;text-align:center;background-color:rgb(255,255,255);display:inline">Djordja Stanojevica 12,</span><br style="box-sizing:border-box;color:rgb(68,68,68);font-family:Roboto,sans-serif;font-weight:300;letter-spacing:1px;text-align:center;background-color:rgb(255,255,255)">
<span style="color:rgb(68,68,68);font-family:Roboto,sans-serif;font-weight:300;letter-spacing:1px;text-align:center;background-color:rgb(255,255,255);display:inline">Beograd 11070</span><br>
</div>
</div>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote>
</div>
</div>
</div>

</blockquote></div>
</blockquote></div></div>