]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
crash: packet_id_debug_print: sl may be null
authorAlon Bar-Lev <alon.barlev@gmail.com>
Sun, 8 Apr 2012 10:04:45 +0000 (13:04 +0300)
committerDavid Sommerseth <davids@redhat.com>
Fri, 27 Apr 2012 11:08:18 +0000 (13:08 +0200)
Program received signal SIGSEGV, Segmentation fault.
packet_id_debug_print (msglevel=1174405255, p=0xa36bd0718,
pin=0x3de5feec1b0,
message=0xa330dde80 "PID_TEST", value=0) at
../../../src/openvpn/packet_id.c:504
504       for (i = 0; i < sl->x_size; ++i)

(gdb) print sl
$2 = (const struct seq_list *) 0x0

Reported in the past[1].

[1] http://thread.gmane.org/gmane.network.openvpn.devel/5466

Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
Acked-by: James Yonan <james@openvpn.net>
Message-Id: 1333879485-2417-1-git-send-email-alon.barlev@gmail.com
URL: http://article.gmane.org/gmane.network.openvpn.devel/6259
Message-Id: 4F9A6B4B.7060502@openvpn.net
URL: http://article.gmane.org/gmane.network.openvpn.devel/6350
Signed-off-by: David Sommerseth <davids@redhat.com>
src/openvpn/packet_id.c

index 0102129fdcf2e70242f09a2abdd9c40eacc4db7a..baa496643c2e091f9dddde3979d256d0340f5a3e 100644 (file)
@@ -501,7 +501,7 @@ packet_id_debug_print (int msglevel,
 
   buf_printf (&out, "%s [%d]", message, value);
   buf_printf (&out, " [%s-%d] [", p->name, p->unit);
-  for (i = 0; i < sl->x_size; ++i)
+  for (i = 0; sl != NULL && i < sl->x_size; ++i)
     {
       char c;
       time_t v;
@@ -538,11 +538,15 @@ packet_id_debug_print (int msglevel,
              p->time_backtrack,
              p->max_backtrack_stat,
              (int)p->initialized);
-  buf_printf (&out, " sl=[%d,%d,%d,%d]",
-             sl->x_head,
-             sl->x_size,
-             sl->x_cap,
-             sl->x_sizeof);
+  if (sl != NULL)
+    {
+         buf_printf (&out, " sl=[%d,%d,%d,%d]",
+                     sl->x_head,
+                     sl->x_size,
+                     sl->x_cap,
+                     sl->x_sizeof);
+    }
+
 
   msg (msglevel, "%s", BSTR(&out));
   gc_free (&gc);