Skip to content

Commit

Permalink
[sanitizer] Update dn_expand interceptor for glibc 2.34
Browse files Browse the repository at this point in the history
Symbol changed with 640bbdf71c6f10ac26252ac67a22902e26657bd8
  • Loading branch information
vitalybuka committed Jul 1, 2022
1 parent 7c4f45f commit f2fa4f9
Showing 1 changed file with 10 additions and 4 deletions.
14 changes: 10 additions & 4 deletions compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
Expand Up @@ -2531,19 +2531,25 @@ INTERCEPTOR(int, __b64_pton, char const *src, char *target, SIZE_T targsize) {
#endif // SANITIZER_INTERCEPT___B64_TO

#if SANITIZER_INTERCEPT___DN_EXPAND
INTERCEPTOR(int, __dn_expand, unsigned char const *base,
#if __GLIBC_PREREQ(2, 34)
// Changed with https://sourceware.org/git/?p=glibc.git;h=640bbdf
#define DN_EXPAND_INTERCEPTOR_NAME dn_expand
#else
#define DN_EXPAND_INTERCEPTOR_NAME __dn_expand
#endif
INTERCEPTOR(int, DN_EXPAND_INTERCEPTOR_NAME, unsigned char const *base,
unsigned char const *end, unsigned char const *src, char *dest,
int space) {
void *ctx;
COMMON_INTERCEPTOR_ENTER(ctx, __dn_expand, base, end, src, dest, space);
COMMON_INTERCEPTOR_ENTER(ctx, DN_EXPAND_INTERCEPTOR_NAME, base, end, src, dest, space);
// TODO: add read check if __dn_comp intercept added
int res = REAL(__dn_expand)(base, end, src, dest, space);
int res = REAL(DN_EXPAND_INTERCEPTOR_NAME)(base, end, src, dest, space);
if (res >= 0)
COMMON_INTERCEPTOR_WRITE_RANGE(ctx, dest, res + 1);
return res;
}
#define INIT___DN_EXPAND \
COMMON_INTERCEPT_FUNCTION(__dn_expand);
COMMON_INTERCEPT_FUNCTION(DN_EXPAND_INTERCEPTOR_NAME);
#else // SANITIZER_INTERCEPT___DN_EXPAND
#define INIT___DN_EXPAND
#endif // SANITIZER_INTERCEPT___DN_EXPAND
Expand Down

0 comments on commit f2fa4f9

Please sign in to comment.