Commit 67e5d49d authored by Nick Mathewson's avatar Nick Mathewson 🤹
Browse files

Make clang asan work with FORTIFIED_SOURCE again.

Short version: clang asan hates the glibc strcmp macro in
bits/string2.h if you are passing it a constant string argument of
length two or less.  (I could be off by one here, but that's the
basic idea.)

Closes issue 14821.
parent be6174f8
Loading
Loading
Loading
Loading

changes/bug14821

0 → 100644
+4 −0
Original line number Diff line number Diff line
  o Major bugfixes (compilation):
    - Correctly repair hardened builds under the clang compiler. Previously,
      our use of _FORTIFY_SOURCE would conflict with clang's address
      sanitizer. Closes ticket 14821.
+9 −0
Original line number Diff line number Diff line
@@ -42,6 +42,15 @@
#include <netinet6/in6.h>
#endif

#if defined(__has_feature)
#  if __has_feature(address_sanitizer)
/* Some of the fancy glibc strcmp() macros include references to memory that
 * clang rejects because it is off the end of a less-than-3. Clang hates this,
 * even though those references never actually happen. */
#    undef strcmp
#  endif
#endif

#include <stdio.h>
#include <errno.h>