[PATCH] D54078: Implement getpeername(2) interceptor
Vitaly Buka via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Nov 7 16:34:25 PST 2018
vitalybuka added inline comments.
================
Comment at: lib/sanitizer_common/sanitizer_common_interceptors.inc:3089
+ taddrlen = 0;
+ __sanitizer_sockaddr_storage taddr;
+ int res = REAL(getpeername)(sockfd, addr ? &taddr : 0,
----------------
vitalybuka wrote:
> Looks like you are trying to fix https://github.com/google/sanitizers/issues/321, but description does not cover it.
> so what if sizeoff(__sanitizer_sockaddr_storage) < *addrlen
maybe you should just ignore 321 for now as it's more general issue, keep FIXME and remove temps.
so you can make it complete by adding "READ_RANGE(ctx, addrlen" and "WRITE_RANGE(ctx, addrlen"
================
Comment at: lib/sanitizer_common/sanitizer_common_interceptors.inc:3093
+ if (!res) {
+ if (addr && addrlen)
+ COMMON_INTERCEPTOR_WRITE_RANGE(ctx, addr, taddrlen);
----------------
```
if (addrlen) {
COMMON_INTERCEPTOR_WRITE_RANGE(ctx, addrlen, sizeof(*addrlen));
if (addr)
COMMON_INTERCEPTOR_WRITE_RANGE(ctx, addr, *addrlen);
}
```
Repository:
rL LLVM
https://reviews.llvm.org/D54078
More information about the llvm-commits
mailing list