Ignore:
Timestamp:
03/14/12 14:58:58 (10 years ago)
Author:
Shane Alcock <salcock@…>
Branches:
4.0.1-hotfixes, cachetimestamps, develop, dpdk-ndag, etsilive, getfragoff, help, libtrace4, master, ndag_format, pfring, rc-4.0.1, rc-4.0.2, rc-4.0.3, rc-4.0.4, ringdecrementfix, ringperformance, ringtimestampfixes
Children:
f440dc0
Parents:
60f3c4c
Message:
  • Fixed bug caused by less-than-careful checking of the amount of payload remaining in a packet when calculating the payload length
File:
1 edited

Legend:

Unmodified
Added
Removed
  • lib/protocols_transport.c

    r8753bb8 r1d4db58  
    116116                        break;
    117117                case TRACE_IPPROTO_UDP:
     118                        if (rem < sizeof(libtrace_udp_t))
     119                                return 0;
     120                        if (len < sizeof(libtrace_udp_t))
     121                                return 0;
    118122                        len -= sizeof(libtrace_udp_t);
    119123                        break;
    120124                case TRACE_IPPROTO_ICMP:
     125                        if (rem < sizeof(libtrace_icmp_t))
     126                                return 0;
     127                        if (len < sizeof(libtrace_icmp_t))
     128                                return 0;
    121129                        len -= sizeof(libtrace_icmp_t);
    122130                        break;
     
    125133                        return 0;
    126134        }
    127 
    128135
    129136        ((libtrace_packet_t *)packet)->payload_length = len;
Note: See TracChangeset for help on using the changeset viewer.