From 7c9cd4467d6c3f55dbd8c1fa4f2de5db6494034f Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Fri, 26 Feb 1999 09:23:52 +0000 Subject: [PATCH] (main) [DOUG_LEA_MALLOC]: Work around a bug in glibc's malloc. --- src/emacs.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/emacs.c b/src/emacs.c index 40c1b16f74..956abe97b8 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -103,6 +103,9 @@ void *malloc_state_ptr; extern void *malloc_get_state (); /* From glibc, a routine that overwrites the malloc internal state. */ extern void malloc_set_state (); +/* Non-zero if the MALLOC_CHECK_ enviroment variable was set while + dumping. Used to work around a bug in glibc's malloc. */ +int malloc_using_checking; #endif /* Variable whose value is symbol giving operating system type. */ @@ -565,9 +568,16 @@ main (argc, argv, envp) #ifdef DOUG_LEA_MALLOC if (initialized) { + if (!malloc_using_checking) + /* Work around a bug in glibc's malloc. MALLOC_CHECK_ must be + ignored if the heap to be restored was constructed without + malloc checking. */ + unsetenv ("MALLOC_CHECK_"); malloc_set_state (malloc_state_ptr); free (malloc_state_ptr); } + else + malloc_using_checking = getenv ("MALLOC_CHECK_") != NULL; #endif #ifdef RUN_TIME_REMAP -- 2.20.1