[PATCH] D44133: Add interceptors for wcsxfrm, wcsxfrm_l

Oliver Chang via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 6 14:50:17 PST 2018


oliverchang added inline comments.


================
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);
+
----------------
vitalybuka wrote:
> sizeof(wchar_t) * (REAL(wcslen)(src) + 1)
Fixed. thanks!


================
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));
----------------
vitalybuka wrote:
> Please remove {}
Done.


================
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);
+
----------------
vitalybuka wrote:
> sizeof(wchar_t) * (REAL(wcslen)(src) + 1)
Done.


================
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));
----------------
vitalybuka wrote:
> you may try to add test case where it catches poisoned bytes in the src string.
Added one here.


Repository:
  rCRT Compiler Runtime

https://reviews.llvm.org/D44133





More information about the llvm-commits mailing list