Issue |
148917
|
Summary |
Missing ASAN Interceptor for `mempcpy`
|
Labels |
|
Assignees |
|
Reporter |
mvanotti
|
It looks like there's no ASAN interceptor for `mempcpy`.
Typically, by default clang will treat `mempcpy` as a built-in function, and replace it by `memcpy`, which would then be replaced by `__asan_memcpy`.
However, if the user specifies a flag like `-std=c++20`, `mempcpy` will no longer be treated as a built-in and will not get any kind of asan instrumentation.
The following C++ program crashes when compiled with `-O0 -fsanitize=address` but fails when compiled with `-O0 -fsanitize=address -std=c++20`
```c++
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char buffer[1024] = {0};
int main(void) {
void* data = ""
mempcpy(data, buffer, 1024);
free(data);
return 0;
}
```
[See in godbolt][godbolt-example]
[godbolt-example]: https://godbolt.org/#z:OYLghAFBqd5QCxAYwPYBMCmBRdBLAF1QCcAaPECAMzwBtMA7AQwFtMQByARg9KtQYEAysib0QXACx8BBAKoBnTAAUAHpwAMvAFYTStJg1DIApACYAQuYukl9ZATwDKjdAGFUtAK4sGIM6SuADJ4DJgAcj4ARpjEEgEADqgKhE4MHt6%2B/qRJKY4CIWGRLDFxXAF2mA5pQgRMxAQZPn5ctpj2%2BQy19QSFEdGxegp1DU1ZrcM9fcWlEgCUtqhexMjsHOYAzKHI3lgA1CYbbsP4qAB0CIfYJhoAgpvbu5gHRye0eFEXVzf3ZlsMOy8%2B0OxwIxFCwC%2BG2udx%2ByAQ9T2US8VCosRMAFYLFwNGZJJiACIvIkmADsFg0ZIJhyssLuoQIexYTFCEAAbqg8Og5gdyT89gK9hyuQAqPboJh1YlMsS0VDICA4swaOY0/mCtgsBLIBIATwgErqpCRKLRZD2Sskqo2tNugr2VGImEwBslTGttvtToIywYe0pNp%2BVI4C1onAxvD8HC0pFQnDc1msewUSxWz02PFIBE0IYWAGt/AA2M4ADgAnH8yyWSxsMbWSxjSfpOJJIznY5xeAoQBoszmFnBYDBEChUFq6LFyJQ0OP6HEdoZgAB9MFeBh5vh0AixbsQKLtqKheq6ziZw/MYi6gDyUW0VWz3F4M7YgivDFoJ%2BjvCwyOAbll3aPqQWDMkY4hfsBeBOtUbKYIBMaYKoVReNu7YMu07bvFExDHh4WDtmCeAsKevCwcQUTJJgBKYKBwDvEY/Z8AYwAKAAangmAAO5XgkjAkTIggiGI7BSAJ8hKGo7a6K0BgMaYljWPoHzdpACyoAknSAQAtFeGh7FpVAKIYqQAF6YIcBJMOg6BOgoCi8KgZHglgKkQAsCSGBErBrOEqDJgQ6AOsxXbtPeaQuAw7ieM0ejBKE/QlIMrS5KkAhjC0OTJKlDDTAMZRtB0NQjI00XjAVYUCN0DS5Yl%2BWTKMpUZfVvTxTMSULCmyyrPMzYcBGpBRjGcYcL5/mBVQwV9l%2BcwLAgmBWYMbmkAWGxmGcpIllwpKkpIGhcBsGyFrt0hhhwrakMRGK9oNDmdrYPZTVoA7DhASBLAQCQoVOEAzgkE7EOE3mcKoJaFlpR17AuRh7BAq7rnMvCYPgRDOXo/CCaI4iiej4kqOoEHSaQnE4QkJGhuGbYQcNV4oZ9jKoFQewg2DENQ8AMNw3mPIQB4s6xAcfxcAjj25qQc0LXES2nedl3Xe2w1dg9D5PfmIC1mcGKSBi5a1jiSqFoWGK9RslNDXdyshqQg5QC9SC/f93323OKCycunObrQ27ELu%2B4Qeex78f7l43neDj8c%2BjAEG%2BH7tj%2BXh/gB/EgYu4Exvg0GOLB8GI0hyAoWsMboadMZYThl54QXvCEcRQFkRRSjUbR9GgNNTFMCx7FcTxfFATjQlY9IOOKHjUnZK7KCJpYSlRK5akaWk2m6fphnGY4ZkWVZNlwQo%2BknBZ8lWJYyp7A5TlcnB8DuZ5gNsCAe8bASB/WMq5XVM4ECuOlsWRTVszJVlnQv7/zyGkX%2BSVX6dCqiVTITVQpvy6MVMBdVipANsIg1qeUeqdTTD1U6/Ubodnvo/SeFgX4WxmstEAkhJAay1mYMwdZJCkjMIWKQJ0Wy8FlgNeWd1uy9nIVbW2IB3p00dmOP6c4b5rGZuDSQkNXYc2IGuLmiNkYkC5GjWQ/cRKD1kMPSSBNsjEyYKTR85M%2Bqm1uhwGmH0UJ7AZkzUGsj5GLkUco7mvMJH802GYYW5DZrzSwJLcxMsQBXW4VTXhSt%2Byqw2KSDWrDSQaFJIbLWGxqzG0sR2DgVcYm9TMFkhWIsKFkRSM4SQQA%3D
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs