]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - tos/chips/cc2420/receive/CC2420ReceiveP.nc
proper fix for short packets
[tinyos-2.x.git] / tos / chips / cc2420 / receive / CC2420ReceiveP.nc
index 710d0d7e9d4757ccf80b098edf1210352b7ae1ab..30a421914b9da6a819bfe2e3db99dc92b7ba03c2 100644 (file)
@@ -214,7 +214,7 @@ implementation {
         
         if(rxFrameLength <= MAC_PACKET_SIZE) {
           if(rxFrameLength > 0) {
-            if(rxFrameLength >= CC2420_SIZE) {
+            if(rxFrameLength > SACK_HEADER_LENGTH) {
               // This packet has an FCF byte plus at least one more byte to read
               call RXFIFO.continueRead(buf + 1, SACK_HEADER_LENGTH);
               
@@ -334,7 +334,7 @@ implementation {
     metadata->lqi = buf[ length ] & 0x7f;
     metadata->rssi = buf[ length - 1 ];
     
-    if(passesAddressCheck(m_p_rx_buf)) {
+    if (passesAddressCheck(m_p_rx_buf) && length >= CC2420_SIZE) {
       m_p_rx_buf = signal Receive.receive( m_p_rx_buf, m_p_rx_buf->data, 
                                           length - CC2420_SIZE);
     }