This is a follow-up to D42506.
There are a few of things that bothered me about scudo_interceptors.cpp:
- the filename is a misnomer: it intercepts some functions, but the rest (C++) is actually in scudo_new_delete.cpp. I feel like scudo_malloc.cpp is more appropriate (ASan uses the same naming scheme);
- we do not need "full" interceptors, since we are never accessing the unsanitized version of the functions, we just need the extern "C" INTERCEPTOR_ATTRIBUTE part of it to just call our functions;
- a couple of functions where duplicated while they could just be ALIAS'd;
- use the SANITIZER_INTERCEPT_* defines to hide the unneeded interceptors;
- use SIZE_T instead of uptr: while it's the same behind the curtain, the former is meant for this use case.
In the end there is no functional change on the currently supported platforms
(Linux, Android).