[PATCH] D54076: Add interceptors for the sysctl(3) API family from NetBSD
Kamil Rytarowski via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Nov 7 17:54:16 PST 2018
krytarowski added inline comments.
================
Comment at: lib/sanitizer_common/sanitizer_common_interceptors.inc:7376
+
+INTERCEPTOR(void *, asysctlbyname, const char *sname, SIZE_T *len) {
+ void *ctx;
----------------
vitalybuka wrote:
> > The asysctl() and asysctlbyname() functions are wrappers for sysctl() and
> > sysctlbyname(). They return memory allocated with malloc(3) and resize
> > the buffer in a loop until all data fits.
>
> if so we should not intercept asysctl and asysctlbyname
They are not macro wrappers, but rather complex standalone code.
https://nxr.netbsd.org/xref/src/lib/libc/gen/asysctl.c
`asysctlbyname` will break because `int name[CTL_MAXNAME];` and `u_int namelen` will be unknown to sanitizers.
Trying to skip `asysctl` will be risky too, it might work but I will feel safer with an interceptor.
Repository:
rL LLVM
https://reviews.llvm.org/D54076
More information about the llvm-commits
mailing list