Changeset 35782f6 for lib/protocols_l2.c


Ignore:
Timestamp:
05/29/08 11:44:54 (13 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:
3a87f4f
Parents:
ae8ec56
Message:
  • Updated all get_payload_from_X functions to set remaining to zero if they are returning NULL rather than have remaining be "undefined" upon return
File:
1 edited

Legend:

Unmodified
Added
Removed
  • lib/protocols_l2.c

    rae8ec56 r35782f6  
    1515
    1616        if (remaining) {
    17                 if (*remaining < sizeof(*eth))
    18                         return NULL;
     17                if (*remaining <= sizeof(*eth)) {
     18                        *remaining = 0;
     19                        return NULL;
     20                }
    1921                *remaining-=sizeof(*eth);
    2022        }
     
    3739
    3840                if (remaining) {
    39                         if (*remaining <= sizeof(libtrace_8021q_t))
     41                        if (*remaining <= sizeof(libtrace_8021q_t)) {
     42                                *remaining = 0;
    4043                                return NULL;
     44                        }
    4145
    4246                        *remaining=*remaining-sizeof(libtrace_8021q_t);
     
    101105
    102106        if (remaining) {
    103                 if (*remaining <= sizeof(libtrace_llcsnap_t))
    104                         return NULL;
     107                if (*remaining <= sizeof(libtrace_llcsnap_t)) {
     108                        *remaining = 0;
     109                        return NULL;
     110                }
    105111                *remaining-=(sizeof(libtrace_llcsnap_t));
    106112        }
     
    120126        int8_t extra = 0; /* how many QoS bytes to skip */
    121127       
    122         if (remaining && *remaining <= sizeof(libtrace_80211_t))
    123                 return NULL;
     128        if (remaining && *remaining <= sizeof(libtrace_80211_t)) {
     129                *remaining = 0;
     130                return NULL;
     131        }
    124132
    125133        wifi=(libtrace_80211_t*)link;
     
    139147                extra += 2;
    140148
    141         if (remaining && *remaining < sizeof(*eth))
    142                 return NULL;
     149        if (remaining && *remaining < sizeof(*eth)) {
     150                *remaining = 0;
     151                return NULL;
     152        }
    143153
    144154        eth=(uint16_t *)((char*)wifi+sizeof(*wifi)+extra);
     
    162172
    163173        if (remaining) {
    164                 if (*remaining <= sizeof(libtrace_ppp_t))
    165                         return NULL;
     174                if (*remaining <= sizeof(libtrace_ppp_t)) {
     175                        *remaining = 0;
     176                        return NULL;
     177                }
    166178                *remaining-=sizeof(libtrace_ppp_t);
    167179        }
     
    189201
    190202        if (remaining) {
    191                 if (*remaining <= sizeof(libtrace_chdlc_t))
    192                         return NULL;
     203                if (*remaining <= sizeof(libtrace_chdlc_t)) {
     204                        *remaining = 0;
     205                        return NULL;
     206                }
    193207                *remaining-=sizeof(libtrace_chdlc_t);
    194208        }
     
    257271{
    258272        libtrace_atm_capture_cell_t *cell;
    259         if (remaining && *remaining<=sizeof(libtrace_atm_capture_cell_t))
    260                 return NULL;
     273        if (remaining && *remaining<=sizeof(libtrace_atm_capture_cell_t)) {
     274                *remaining = 0;
     275                return NULL;
     276        }
    261277        cell=(libtrace_atm_capture_cell_t*)link;
    262278
Note: See TracChangeset for help on using the changeset viewer.