Ignore:
Timestamp:
11/29/18 10:12:59 (2 years ago)
Author:
Jacob Van Walraven <jcv9@…>
Branches:
develop
Children:
fdf23b8
Parents:
d74ca03
Message:

Apply changes required for pull request #81

File:
1 edited

Legend:

Unmodified
Added
Removed
  • lib/format_pcapng.c

    rf6f3ae5 r2193905  
    3131
    3232#include <sys/stat.h>
    33 #include <assert.h>
    3433#include <stdio.h>
    3534#include <stdlib.h>
     
    219218        libtrace->format_data = malloc(sizeof(struct pcapng_format_data_t));
    220219        if (!libtrace->format_data) {
    221                 trace_set_err(libtrace, TRACE_ERR_INIT_FAILED, "Unable to allocate memory pcapng_init_input()");
     220                trace_set_err(libtrace, TRACE_ERR_INIT_FAILED, "Unable to allocate memory for "
     221                        "format data inside pcapng_init_input()");
    222222                return -1;
    223223        }
     
    302302        }
    303303
    304         /*assert((char *)blockhdr < *pktbuf);*/
    305         if (!((char *)blockhdr < *pktbuf)) {
     304        if ((char *)blockhdr >= *pktbuf) {
    306305                return NULL;
    307306        }
     
    459458        }
    460459
    461         /*assert(sechdr->blocktype == PCAPNG_SECTION_TYPE);*/
    462460        if (sechdr->blocktype != PCAPNG_SECTION_TYPE) {
    463                 trace_set_err(libtrace, TRACE_ERR_BAD_PACKET, "Section is not a pcapng section type");
     461                trace_set_err(libtrace, TRACE_ERR_BAD_PACKET, "Invalid block type in pcapng section block");
    464462                return -1;
    465463        }
     
    538536
    539537        if (DATA(libtrace)->byteswapped) {
    540                 /*assert(byteswap32(inthdr->blocktype) == PCAPNG_INTERFACE_TYPE);*/
    541538                if (byteswap32(inthdr->blocktype) != PCAPNG_INTERFACE_TYPE) {
    542                         trace_set_err(libtrace, TRACE_ERR_BAD_PACKET, "Interface is not a pcapng type");
     539                        trace_set_err(libtrace, TRACE_ERR_BAD_PACKET, "Invalid block type in pcapng interface");
    543540                        return -1;
    544541                }
     
    546543                newint->linktype = byteswap16(inthdr->linktype);
    547544        } else {
    548                 /*assert(inthdr->blocktype == PCAPNG_INTERFACE_TYPE);*/
    549545                if (inthdr->blocktype != PCAPNG_INTERFACE_TYPE) {
    550                         trace_set_err(libtrace, TRACE_ERR_BAD_PACKET, "Interface is not a pcapng type");
     546                        trace_set_err(libtrace, TRACE_ERR_BAD_PACKET, "Invalid block type in pcapng interface");
    551547                        return -1;
    552548                }
     
    621617        /* Read the rest of the packet into the buffer */
    622618        if (DATA(libtrace)->byteswapped) {
    623                 /*assert(byteswap32(hdr->blocktype) == PCAPNG_NAME_RESOLUTION_TYPE);*/
    624619                if (byteswap32(hdr->blocktype) != PCAPNG_NAME_RESOLUTION_TYPE) {
    625                         trace_set_err(libtrace, TRACE_ERR_BAD_PACKET, "Blocktype is not a pcapng name resolution type");
     620                        trace_set_err(libtrace, TRACE_ERR_BAD_PACKET, "Invalid block type in pcapng name "
     621                                "resolution block");
    626622                        return -1;
    627623                }
    628624        } else {
    629                 /*assert(hdr->blocktype == PCAPNG_NAME_RESOLUTION_TYPE);*/
    630625                if (hdr->blocktype != PCAPNG_NAME_RESOLUTION_TYPE) {
    631                         trace_set_err(libtrace, TRACE_ERR_BAD_PACKET, "Blocktype is not a pcapng name resolution type");
     626                        trace_set_err(libtrace, TRACE_ERR_BAD_PACKET, "Invalid block type in pcapng name "
     627                                "resolution block");
    632628                        return -1;
    633629                }
     
    663659        /* Read the rest of the packet into the buffer */
    664660        if (DATA(libtrace)->byteswapped) {
    665                 /*assert(byteswap32(hdr->blocktype) == PCAPNG_CUSTOM_TYPE ||
    666                         byteswap32(hdr->blocktype) == PCAPNG_CUSTOM_NONCOPY_TYPE);*/
    667661                if (byteswap32(hdr->blocktype) != PCAPNG_CUSTOM_TYPE ||
    668662                        byteswap32(hdr->blocktype) != PCAPNG_CUSTOM_NONCOPY_TYPE) {
    669                         trace_set_err(libtrace, TRACE_ERR_BAD_PACKET, "Blocktype is not pcapng custom type");
     663                        trace_set_err(libtrace, TRACE_ERR_BAD_PACKET, "Invalid blocktype "
     664                                "in pcapng custom block");
    670665                        return -1;
    671666                }
    672667        } else {
    673                 /*assert(hdr->blocktype == PCAPNG_CUSTOM_TYPE ||
    674                         hdr->blocktype == PCAPNG_CUSTOM_NONCOPY_TYPE);*/
    675668                if (hdr->blocktype != PCAPNG_CUSTOM_TYPE ||
    676669                        hdr->blocktype != PCAPNG_CUSTOM_NONCOPY_TYPE) {
    677                         trace_set_err(libtrace, TRACE_ERR_BAD_PACKET, "Blocktype is not pcapng custom type");
     670                        trace_set_err(libtrace, TRACE_ERR_BAD_PACKET, "Invalid blocktype "
     671                                "in pcapng custom block");
    678672                        return -1;
    679673                }
     
    710704        /* Read the rest of the packet into the buffer */
    711705        if (DATA(libtrace)->byteswapped) {
    712                 /*assert(byteswap32(hdr->blocktype) == PCAPNG_INTERFACE_STATS_TYPE);*/
    713706                if (byteswap32(hdr->blocktype) != PCAPNG_INTERFACE_STATS_TYPE) {
    714                         trace_set_err(libtrace, TRACE_ERR_BAD_PACKET, "Blocktype is not a pcapng stats type");
     707                        trace_set_err(libtrace, TRACE_ERR_BAD_PACKET, "Invalid block type "
     708                                "in pcapng statistics block");
    715709                        return -1;
    716710                }
     
    718712                timestamp = ((uint64_t)(byteswap32(hdr->timestamp_high)) << 32) + byteswap32(hdr->timestamp_low);
    719713        } else {
    720                 /*assert(hdr->blocktype == PCAPNG_INTERFACE_STATS_TYPE);*/
    721                 if (hdr->blocktype != PCAPNG_INTERFACE_STATS_TYPE) {
    722                         trace_set_err(libtrace, TRACE_ERR_BAD_PACKET, "Blocktype is not a pcapng stats type");
     714                if (hdr->blocktype != PCAPNG_INTERFACE_STATS_TYPE) {
     715                        trace_set_err(libtrace, TRACE_ERR_BAD_PACKET, "Invalid block type "
     716                                "in pcapng statistics block");
    723717                        return -1;
    724718                }
     
    817811        /* Read the rest of the packet into the buffer */
    818812        if (DATA(libtrace)->byteswapped) {
    819                 /*assert(byteswap32(hdr->blocktype) == PCAPNG_SIMPLE_PACKET_TYPE);*/
    820813                if (byteswap32(hdr->blocktype) != PCAPNG_SIMPLE_PACKET_TYPE) {
    821                         trace_set_err(libtrace, TRACE_ERR_BAD_PACKET, "Blocktype is not a pcapng simple type");
     814                        trace_set_err(libtrace, TRACE_ERR_BAD_PACKET, "Invalid block type in "
     815                                "pcapng simple packet block");
    822816                        return -1;
    823817                }
     
    825819                         /* account for trailing length field */
    826820        } else {
    827                 /*assert(hdr->blocktype == PCAPNG_SIMPLE_PACKET_TYPE);*/
    828821                if (hdr->blocktype != PCAPNG_SIMPLE_PACKET_TYPE) {
    829                         trace_set_err(libtrace, TRACE_ERR_BAD_PACKET, "Blocktype is not a pcapng simple type");
     822                        trace_set_err(libtrace, TRACE_ERR_BAD_PACKET, "Invalid block type in "
     823                                "pcapng simple packet block");
     824                        return -1;
    830825                }
    831826                caplen = hdr->blocklen - sizeof(pcapng_spkt_t) - 4;
     
    874869        /* Read the rest of the packet into the buffer */
    875870        if (DATA(libtrace)->byteswapped) {
    876                 /*assert(byteswap32(hdr->blocktype) == PCAPNG_ENHANCED_PACKET_TYPE);*/
    877871                if (byteswap32(hdr->blocktype) != PCAPNG_ENHANCED_PACKET_TYPE) {
    878                         trace_set_err(libtrace, TRACE_ERR_BAD_PACKET, "Blocktype is not a pcapng enhanced type");
     872                        trace_set_err(libtrace, TRACE_ERR_BAD_PACKET, "Invalid block type in "
     873                                "pcapng enhanced packet block");
    879874                        return -1;
    880875                }
     
    882877                ifaceid = byteswap32(hdr->interfaceid);
    883878        } else {
    884                 /*assert(hdr->blocktype == PCAPNG_ENHANCED_PACKET_TYPE);*/
    885879                if (hdr->blocktype != PCAPNG_ENHANCED_PACKET_TYPE) {
    886                         trace_set_err(libtrace, TRACE_ERR_BAD_PACKET, "Blocktype is not a pcapng enhanced type");
     880                        trace_set_err(libtrace, TRACE_ERR_BAD_PACKET, "Invalid block type in "
     881                                "pcapng enhanced packet block");
    887882                        return -1;
    888883                }
     
    961956        }
    962957        if (!packet) {
    963                 trace_set_err(libtrace, TRACE_ERR_NULL_PACKET, "NULL packet passed into pcapng_read_packet()\n");
     958                trace_set_err(libtrace, TRACE_ERR_NULL_PACKET, "NULL packet passed into "
     959                        "pcapng_read_packet()\n");
    964960                return -1;
    965961        }
    966962
    967963        /* Peek to get next block type */
    968         /*assert(libtrace->format_data);*/
    969964        if (!libtrace->format_data) {
    970                 trace_set_err(libtrace, TRACE_ERR_BAD_FORMAT, "Trace has no format data in pcapng_read_packet()");
     965                trace_set_err(libtrace, TRACE_ERR_BAD_FORMAT, "Trace has no format data in "
     966                        "pcapng_read_packet()");
    971967                return -1;
    972968        }
    973         /*assert(libtrace->io);*/
    974969        if (!libtrace->io) {
    975                 trace_set_err(libtrace, TRACE_ERR_BAD_IO, "Trace has no IO associated with it in pcapng_read_packet()");
     970                trace_set_err(libtrace, TRACE_ERR_BAD_IO, "Trace has no valid file handle "
     971                        "attached to it in pcapng_read_packet()");
    976972                return -1;
    977973        }
     
    11211117                return ts;
    11221118        }
    1123         /*assert(packet->header);*/
    11241119        if (!packet->header) {
    11251120                trace_set_err(packet->trace, TRACE_ERR_BAD_PACKET, "NULL header in packet in pcapng_get_timespec()");
Note: See TracChangeset for help on using the changeset viewer.