Changeset c876f29 for lib/protocols_l2.c


Ignore:
Timestamp:
02/05/19 09:50:43 (2 years ago)
Author:
Jacob Van Walraven <jcv9@…>
Branches:
develop
Children:
5e5b6ca
Parents:
db919d5 (diff), 1c3f8d2 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Resolve merge conflict attempt 2

File:
1 edited

Legend:

Unmodified
Added
Removed
  • lib/protocols_l2.c

    r692bf9c rc876f29  
    690690         * calling trace_get_packet_buffer more than once like we used to.
    691691         */
    692        
    693692        meta = trace_get_packet_buffer(packet, linktype, remaining);
     693        if (meta == NULL) {
     694                return NULL;
     695        }
    694696
    695697        /* If there are no meta-data headers, we just return the start of the
     
    719721                case TRACE_TYPE_PFLOG:
    720722                case TRACE_TYPE_ERF_META:
     723                case TRACE_TYPE_PCAPNG_META:
    721724                case TRACE_TYPE_ETSILI:
    722725                        break;
     
    757760                                case TRACE_TYPE_PFLOG:
    758761                                case TRACE_TYPE_ERF_META:
     762                                case TRACE_TYPE_PCAPNG_META:
    759763                                case TRACE_TYPE_ETSILI:
    760764                                        break;
     
    808812                return NULL;
    809813        }
    810        
     814
     815        if (link == NULL) {
     816                return NULL;
     817        }
     818
    811819        switch(linktype) {
    812820                /* Packet Metadata headers, not layer2 headers */
     
    827835                case TRACE_TYPE_METADATA:
    828836                case TRACE_TYPE_NONDATA:
     837                case TRACE_TYPE_PCAPNG_META:
    829838                case TRACE_TYPE_ERF_META:
    830839                case TRACE_TYPE_CONTENT_INVALID:
     
    837846                        return trace_get_payload_from_ethernet(link,ethertype,remaining);
    838847                case TRACE_TYPE_NONE:
     848                        if (*remaining == 0) {
     849                                return NULL;
     850                        }
     851
    839852                        if ((*(char*)link&0xF0) == 0x40)
    840853                                *ethertype=TRACE_ETHERTYPE_IP;   /* IPv4 */
    841854                        else if ((*(char*)link&0xF0) == 0x60)
    842855                                *ethertype=TRACE_ETHERTYPE_IPV6; /* IPv6 */
     856                        else
     857                                return NULL;            /* No idea */
    843858                        return link; /* I love the simplicity */
    844859                case TRACE_TYPE_PPP:
     
    865880
    866881                case TRACE_TYPE_OPENBSD_LOOP:
     882                        if (*remaining <= 4) {
     883                                return NULL;
     884                        }
    867885                        link = link + 4; /* Loopback header is 4 bytes */
    868886                        if ((*(char*)link&0xF0) == 0x40)
     
    870888                        else if ((*(char*)link&0xF0) == 0x60)
    871889                                *ethertype=TRACE_ETHERTYPE_IPV6; /* IPv6 */
     890                        else
     891                                return NULL;
    872892                        return link; /* I love the simplicity */
    873893               
     
    937957                case TRACE_TYPE_OPENBSD_LOOP:
    938958                case TRACE_TYPE_ERF_META:
     959                case TRACE_TYPE_PCAPNG_META:
    939960                case TRACE_TYPE_UNKNOWN:
    940961                case TRACE_TYPE_CONTENT_INVALID:
     
    9931014                case TRACE_TYPE_OPENBSD_LOOP:
    9941015                case TRACE_TYPE_ERF_META:
     1016                case TRACE_TYPE_PCAPNG_META:
    9951017                case TRACE_TYPE_UNKNOWN:
    9961018                case TRACE_TYPE_CONTENT_INVALID:
Note: See TracChangeset for help on using the changeset viewer.