Ver código fonte

Protect against fatal error handlers calling G_fatal_error()

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@40465 15284696-431f-4ddb-bdfa-cd5b030d7da7
Glynn Clements 15 anos atrás
pai
commit
c9b954a931
1 arquivos alterados com 5 adições e 0 exclusões
  1. 5 0
      lib/gis/error.c

+ 5 - 0
lib/gis/error.c

@@ -146,8 +146,13 @@ void G_important_message(const char *msg, ...)
  */
  */
 void G_fatal_error(const char *msg, ...)
 void G_fatal_error(const char *msg, ...)
 {
 {
+    static int busy;
     va_list ap;
     va_list ap;
 
 
+    if (busy)
+	exit(EXIT_FAILURE);
+    busy = 1;
+
     va_start(ap, msg);
     va_start(ap, msg);
     vfprint_error(ERR, msg, ap);
     vfprint_error(ERR, msg, ap);
     va_end(ap);
     va_end(ap);