[sanitizer] Update dn_expand interceptor for glibc 2.34
authorVitaly Buka <vitalybuka@google.com>
Fri, 1 Jul 2022 23:22:04 +0000 (16:22 -0700)
committerVitaly Buka <vitalybuka@google.com>
Fri, 1 Jul 2022 23:26:58 +0000 (16:26 -0700)
Symbol changed with 640bbdf71c6f10ac26252ac67a22902e26657bd8

compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc

index 9b828ff..6053701 100644 (file)
@@ -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