Fixed state machine hangup with invalid payload_len field.
authorjcorgan <jcorgan@221aa14e-8319-0410-a670-987f0aec2ac5>
Sun, 11 Mar 2007 16:32:34 +0000 (16:32 +0000)
committerjcorgan <jcorgan@221aa14e-8319-0410-a670-987f0aec2ac5>
Sun, 11 Mar 2007 16:32:34 +0000 (16:32 +0000)
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@4737 221aa14e-8319-0410-a670-987f0aec2ac5

gnuradio-core/src/lib/general/gr_framer_sink_1.cc

index 1d939adbddfb4107b186a425467d048b66f3a6c0..be5209a71e196c135831c3239dc9de02300624ba 100644 (file)
@@ -57,6 +57,11 @@ gr_framer_sink_1::enter_have_header(int payload_len, int whitener_offset)
   if (VERBOSE)
     fprintf(stderr, "@ enter_have_header (payload_len = %d) (offset = %d)\n", payload_len, whitener_offset);
 
+  if (payload_len < 4) {       // should be at least the length of the CRC field
+    enter_search();
+    return;
+  }
+
   d_state = STATE_HAVE_HEADER;
   d_packetlen = payload_len;
   d_packet_whitener_offset = whitener_offset;