]> git.eshelyaron.com Git - emacs.git/commitdiff
Work around AddressSanitizer bug with vfork
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 17 May 2017 17:58:11 +0000 (10:58 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Wed, 17 May 2017 17:59:02 +0000 (10:59 -0700)
Problem reported by Jim Meyering in:
http://lists.gnu.org/archive/html/emacs-devel/2017-05/msg00246.html
* src/conf_post.h (vfork) [ADDRESS_SANITIZER]: Define to fork.
Unfortunately with the AddressSanitizer in Fedora 25 x86-64, the
vforked child messes up the parent’s shadow memory.  This is too
bad, as we’d rather have AddressSanitizer catch memory-access bugs
related to vfork.

src/conf_post.h

index 4fc0428df5aecf8e77d94d588370fca892ea087f..1462bd16c7552d47f3643074f7391dfa8862a3bf 100644 (file)
@@ -302,6 +302,12 @@ extern int emacs_setenv_TZ (char const *);
 # define ATTRIBUTE_NO_SANITIZE_ADDRESS
 #endif
 
+/* gcc -fsanitize=address does not work with vfork in Fedora 25 x86-64.
+   For now, assume that this problem occurs on all platforms.  */
+#if ADDRESS_SANITIZER && !defined vfork
+# define vfork fork
+#endif
+
 /* Some versions of GNU/Linux define noinline in their headers.  */
 #ifdef noinline
 #undef noinline