[PATCH] D44133: Add interceptors for wcsxfrm, wcsxfrm_l
Vitaly Buka via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Mar 6 11:34:57 PST 2018
vitalybuka accepted this revision.
vitalybuka added a comment.
This revision is now accepted and ready to land.
Are you going to move strxfrm into common as well? In the different patch?
If not, I'll move it myself, for consistency.
================
Comment at: lib/sanitizer_common/sanitizer_common_interceptors.inc:6529
+ COMMON_INTERCEPTOR_ENTER(ctx, wcsxfrm, dest, src, len);
+ COMMON_INTERCEPTOR_READ_RANGE(ctx, src, REAL(wcslen)(src) + 1);
+
----------------
sizeof(wchar_t) * (REAL(wcslen)(src) + 1)
================
Comment at: lib/sanitizer_common/sanitizer_common_interceptors.inc:6532
+ SIZE_T res = REAL(wcsxfrm)(dest, src, len);
+ if (res < len) {
+ COMMON_INTERCEPTOR_WRITE_RANGE(ctx, dest, sizeof(wchar_t) * (res + 1));
----------------
Please remove {}
================
Comment at: lib/sanitizer_common/sanitizer_common_interceptors.inc:6543
+ COMMON_INTERCEPTOR_ENTER(ctx, wcsxfrm_l, dest, src, len, locale);
+ COMMON_INTERCEPTOR_READ_RANGE(ctx, src, REAL(wcslen)(src) + 1);
+
----------------
sizeof(wchar_t) * (REAL(wcslen)(src) + 1)
================
Comment at: test/msan/wcsxfrm.cc:11
+ wchar_t q[10];
+ size_t n = wcsxfrm(q, L"abcdef", sizeof(q) / sizeof(wchar_t));
+ assert(n < sizeof(q));
----------------
you may try to add test case where it catches poisoned bytes in the src string.
Repository:
rCRT Compiler Runtime
https://reviews.llvm.org/D44133
More information about the llvm-commits
mailing list