vnet/tcp/tcp.c: address a corner case. 28/15528/2
authorPaul Vinciguerra <pvinci@vinciconsulting.com>
Thu, 25 Oct 2018 12:14:19 +0000 (05:14 -0700)
committerFlorin Coras <florin.coras@gmail.com>
Thu, 25 Oct 2018 15:11:00 +0000 (15:11 +0000)
Avoid possible null pointer dereference

Change-Id: If8023edb43aaf037234f4a7b5f191cb23b09c74d
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
src/vnet/tcp/tcp.c

index 122e120..5fadef0 100644 (file)
@@ -1803,12 +1803,15 @@ tcp_scoreboard_replay (u8 * s, tcp_connection_t * tc, u8 verbose)
   scoreboard_init (&dummy_tc->sack_sb);
   dummy_tc->rcv_opts.flags |= TCP_OPTS_FLAG_SACK;
 
-#if TCP_SCOREBOARD_TRACE
+/* Since this is also accessible via decl. in tcp.h.
+ * Otherwise, it is gated earlier by cli parser.
+ */
+#if (!TCP_SCOREBOARD_TRACE)
+  s = format (0, "scoreboard tracing not enabled");
+  return s;
+#else
   trace = tc->sack_sb.trace;
   trace_len = vec_len (tc->sack_sb.trace);
-#else
-  trace = 0;
-  trace_len = 0;
 #endif
 
   for (i = 0; i < trace_len; i++)