]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
Make assert_failed() print the failed condition
authorSteffan Karger <steffan@karger.me>
Sun, 20 Dec 2015 10:44:09 +0000 (11:44 +0100)
committerGert Doering <gert@greenie.muc.de>
Sun, 20 Dec 2015 13:10:29 +0000 (14:10 +0100)
Easy change to make logging output more useful.

v2: don't print the failed condition if ENABLE_SMALL is defined.

Signed-off-by: Steffan Karger <steffan@karger.me>
Acked-by: Arne Schwabe <arne@rfc2549.org>
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <1450608249-9947-1-git-send-email-steffan@karger.me>
URL: http://article.gmane.org/gmane.network.openvpn.devel/10862
Signed-off-by: Gert Doering <gert@greenie.muc.de>
(cherry picked from commit 9b36bd40d393620cce83392f4a56392ba391fb7c)

src/openvpn/error.c
src/openvpn/error.h

index de2fc49a9eef6565725b86d47c4d5cb9ed3a0b50..f503cf4b9ce355a5e6965b651a0162c8e708782d 100644 (file)
@@ -397,9 +397,12 @@ dont_mute (unsigned int flags)
 }
 
 void
-assert_failed (const char *filename, int line)
+assert_failed (const char *filename, int line, const char *condition)
 {
-  msg (M_FATAL, "Assertion failed at %s:%d", filename, line);
+  if (condition)
+    msg (M_FATAL, "Assertion failed at %s:%d (%s)", filename, line, condition);
+  else
+    msg (M_FATAL, "Assertion failed at %s:%d", filename, line);
   _exit(1);
 }
 
index d0d528aed9b9e421fe1f1477e676ba0604975c84..42308e851d491f873a9d83175f6671942bd5c3e9 100644 (file)
@@ -214,9 +214,14 @@ const char *msg_flags_string (const unsigned int flags, struct gc_arena *gc);
 FILE *msg_fp(const unsigned int flags);
 
 /* Fatal logic errors */
-#define ASSERT(x) do { if (!(x)) assert_failed(__FILE__, __LINE__); } while (false)
+#ifndef ENABLE_SMALL
+#define ASSERT(x) do { if (!(x)) assert_failed(__FILE__, __LINE__, #x); } while (false)
+#else
+#define ASSERT(x) do { if (!(x)) assert_failed(__FILE__, __LINE__, NULL); } while (false)
+#endif
 
-void assert_failed (const char *filename, int line) __attribute__((__noreturn__));
+void assert_failed (const char *filename, int line, const char *condition)
+  __attribute__((__noreturn__));
 
 #ifdef ENABLE_DEBUG
 void crash (void); /* force a segfault (debugging only) */