[compiler-rt] r180101 - [msan] Unpoison the result of posix_memalign.
Kostya Serebryany
kcc at google.com
Tue Apr 23 16:53:14 PDT 2013
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/20130423/2b251538/attachment.html>
More information about the llvm-commits
mailing list