[compiler-rt] [compiler-rt][tysan] adding posix strndup interception. (PR #122255)

Florian Mayer via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 9 07:03:49 PST 2025


================
@@ -99,6 +105,15 @@ INTERCEPTOR(char *, __strdup, const char *s) {
 }
 #endif // TYSAN_INTERCEPT___STRDUP
 
+#if TYSAN_INTERCEPT___STRNDUP
+INTERCEPTOR(char *, strndup, const char *s, SIZE_T slen) {
+  char *res = REAL(strndup)(s, slen);
+  if (res)
+    tysan_copy_types(res, const_cast<char *>(s), Min(internal_strlen(s), slen));
----------------
fmayer wrote:

Why do we need to cast away the `const`?

```
tysan_copy_types(const void *daddr, const void *saddr, uptr size) {
```

https://github.com/llvm/llvm-project/pull/122255


More information about the llvm-commits mailing list