[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