[compiler-rt] r180101 - [msan] Unpoison the result of posix_memalign.

Kostya Serebryany kcc at google.com
Wed Apr 24 05:34:14 PDT 2013


Ah, sure.


On Wed, Apr 24, 2013 at 3:47 AM, Evgeniy Stepanov <eugeni.stepanov at gmail.com
> wrote:

> By "result" I mean the pointer itself, not the allocated memory.
>
>
> On Wed, Apr 24, 2013 at 3:53 AM, Kostya Serebryany <kcc at google.com> wrote:
> > Why?
> >
> >
> > On Tue, Apr 23, 2013 at 6:27 AM, Evgeniy Stepanov
> > <eugeni.stepanov at gmail.com> wrote:
> >>
> >> Author: eugenis
> >> Date: Tue Apr 23 08:27:36 2013
> >> New Revision: 180101
> >>
> >> URL: http://llvm.org/viewvc/llvm-project?rev=180101&view=rev
> >> Log:
> >> [msan] Unpoison the result of posix_memalign.
> >>
> >> Modified:
> >>     compiler-rt/trunk/lib/msan/msan_interceptors.cc
> >>     compiler-rt/trunk/lib/msan/tests/msan_test.cc
> >>
> >> Modified: compiler-rt/trunk/lib/msan/msan_interceptors.cc
> >> URL:
> >>
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/msan/msan_interceptors.cc?rev=180101&r1=180100&r2=180101&view=diff
> >>
> >>
> ==============================================================================
> >> --- compiler-rt/trunk/lib/msan/msan_interceptors.cc (original)
> >> +++ compiler-rt/trunk/lib/msan/msan_interceptors.cc Tue Apr 23 08:27:36
> >> 2013
> >> @@ -114,8 +114,10 @@ INTERCEPTOR(void *, memset, void *s, int
> >>  INTERCEPTOR(int, posix_memalign, void **memptr, SIZE_T alignment,
> SIZE_T
> >> size) {
> >>    GET_MALLOC_STACK_TRACE;
> >>    CHECK_EQ(alignment & (alignment - 1), 0);
> >> -  *memptr = MsanReallocate(&stack, 0, size, alignment, false);
> >>    CHECK_NE(memptr, 0);
> >> +  *memptr = MsanReallocate(&stack, 0, size, alignment, false);
> >> +  CHECK_NE(*memptr, 0);
> >> +  __msan_unpoison(memptr, sizeof(*memptr));
> >>    return 0;
> >>  }
> >>
> >>
> >> Modified: compiler-rt/trunk/lib/msan/tests/msan_test.cc
> >> URL:
> >>
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/msan/tests/msan_test.cc?rev=180101&r1=180100&r2=180101&view=diff
> >>
> >>
> ==============================================================================
> >> --- compiler-rt/trunk/lib/msan/tests/msan_test.cc (original)
> >> +++ compiler-rt/trunk/lib/msan/tests/msan_test.cc Tue Apr 23 08:27:36
> 2013
> >> @@ -1627,6 +1627,15 @@ TEST(MemorySanitizer, PreAllocatedStackT
> >>    ASSERT_EQ(0, res);
> >>  }
> >>
> >> +TEST(MemorySanitizer, posix_memalign) {
> >> +  void *p;
> >> +  EXPECT_POISONED(p);
> >> +  int res = posix_memalign(&p, 4096, 13);
> >> +  ASSERT_EQ(0, res);
> >> +  EXPECT_NOT_POISONED(p);
> >> +  free(p);
> >> +}
> >> +
> >>  TEST(MemorySanitizer, uname) {
> >>    struct utsname u;
> >>    int res = uname(&u);
> >>
> >>
> >> _______________________________________________
> >> llvm-commits mailing list
> >> llvm-commits at cs.uiuc.edu
> >> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130424/4259c601/attachment.html>


More information about the llvm-commits mailing list