[4.1] 8b59fe4 Make the santity check of backtrace(3) returns even more robust.

Lasse Karstensen lkarsten at varnish-software.com
Tue Jun 14 12:58:08 CEST 2016


commit 8b59fe4063c6051e7c15baa82985d315afdb74c6
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Mon May 30 07:50:34 2016 +0000

    Make the santity check of backtrace(3) returns even more robust.

diff --git a/bin/varnishd/cache/cache_panic.c b/bin/varnishd/cache/cache_panic.c
index 4951c51..6a55208 100644
--- a/bin/varnishd/cache/cache_panic.c
+++ b/bin/varnishd/cache/cache_panic.c
@@ -414,18 +414,20 @@ pan_sess(struct vsb *vsb, const struct sess *sp)
 
 /*--------------------------------------------------------------------*/
 
+#define BACKTRACE_LEVELS	10
+
 static void
 pan_backtrace(struct vsb *vsb)
 {
-	void *array[10];
-	ssize_t size;
-	ssize_t i;
+	void *array[BACKTRACE_LEVELS];
+	size_t size;
+	size_t i;
 	char **strings;
 	char *p;
 
-	size = backtrace (array, 10);
-	if (size <= 0) {
-		VSB_printf(vsb, "Backtrace not available (%zd)\n", size);
+	size = backtrace (array, BACKTRACE_LEVELS);
+	if (size > BACKTRACE_LEVELS) {
+		VSB_printf(vsb, "Backtrace not available (ret=%zu)\n", size);
 		return;
 	}
 	VSB_printf(vsb, "Backtrace:\n");



More information about the varnish-commit mailing list