Changeset f7bcbfb


Ignore:
Timestamp:
02/21/14 10:38:06 (8 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:
a31777e
Parents:
86bec15
Message:

Fixed warnings that cropped up when building with clang

  • Added proper "unknown" or "error" values to some libtrace enums. This removes the need for the hideous ==~0U checks that we used to do to check for errors and should be a bit more robust.
  • Fixed potential strncat bugs in one of the libpacketdump decoders.
  • Changed some null-ops in ior-peek as our current method was triggering warnings.
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • lib/format_erf.c

    r98d4e2d rf7bcbfb  
    637637                /* Flags. Can't do this */
    638638                memset(&erfhdr.flags,1,sizeof(erfhdr.flags));
    639                 if (trace_get_direction(packet)!=~0U)
     639                if (trace_get_direction(packet)!=TRACE_DIR_UNKNOWN)
    640640                        erfhdr.flags.iface = trace_get_direction(packet);
    641641
  • lib/format_pcap.c

    rc909fad rf7bcbfb  
    463463         * pop off the top header until it can be converted
    464464         */
    465         while (libtrace_to_pcap_linktype(linktype)==~0U) {
     465        while (libtrace_to_pcap_linktype(linktype)==TRACE_DLT_ERROR) {
    466466                if (!demote_packet(packet)) {
    467467                        trace_set_err_out(libtrace,
  • lib/format_pcapfile.c

    raccdd5b rf7bcbfb  
    426426        /* Silently discard RT metadata packets and packets with an
    427427         * unknown linktype. */
    428         if (linktype == TRACE_TYPE_NONDATA || linktype == ~0U) {
     428        if (linktype == TRACE_TYPE_NONDATA || linktype == TRACE_TYPE_UNKNOWN) {
    429429                return 0;
    430430        }
     
    433433         * pop off the top header until it can be converted
    434434         */
    435         while (libtrace_to_pcap_linktype(linktype)==~0U) {
     435        while (libtrace_to_pcap_linktype(linktype)==TRACE_DLT_ERROR) {
    436436                if (!demote_packet(packet)) {
    437437                        trace_set_err_out(out,
  • lib/libtrace.h.in

    rc04929c rf7bcbfb  
    249249 */
    250250typedef enum {
     251        /* Special value used to indicate a failure to convert to libtrace
     252         * DLT */
     253        TRACE_DLT_ERROR = -1,
     254       
    251255        /** pcap documents this as having the Address Family value in host byte order as the
    252256          * framing.  Ugly? Yes.
     
    279283/** Enumeration of link layer types supported by libtrace */
    280284typedef enum {
     285       TRACE_TYPE_UNKNOWN = -1,         /**< Unable to determine link type */
    281286    /* TRACE_TYPE_LEGACY = 0            Obsolete */
    282287       TRACE_TYPE_HDLC_POS = 1,         /**< HDLC over POS */
     
    487492        TRACE_DIR_OUTGOING = 0,         /**< Packets originating "inside" */
    488493        TRACE_DIR_INCOMING = 1,         /**< Packets originating "outside" */
    489         TRACE_DIR_OTHER    = 2          /**< Packets with an unknown direction, or one that's unknown */
     494        TRACE_DIR_OTHER    = 2,         /**< Packets with an unknown direction, or one that's unknown */
     495        TRACE_DIR_UNKNOWN = -1,         /**< No direction information available */
    490496} libtrace_direction_t;
    491497
  • lib/linktypes.c

    r77f79c7 rf7bcbfb  
    6767                case TRACE_DLT_OPENBSD_LOOP: return TRACE_TYPE_OPENBSD_LOOP;
    6868                /* Unhandled */
     69                case TRACE_DLT_ERROR:
    6970                case TRACE_DLT_NULL:    /* Raw IP frame with a BSD specific
    7071                                         * header If you want raw L3 headers
     
    7374                        break;
    7475        }
    75         return ~0U;
     76        return TRACE_TYPE_UNKNOWN;
    7677}
    7778
     
    115116                case TRACE_TYPE_NONDATA:
    116117                        break;
    117         }
    118         return ~0U;
     118                case TRACE_TYPE_UNKNOWN:
     119                        break;
     120        }
     121        return TRACE_DLT_ERROR;
    119122}
    120123
     
    203206                case TRACE_TYPE_NONDATA:
    204207                case TRACE_TYPE_OPENBSD_LOOP:
     208                case TRACE_TYPE_UNKNOWN:
    205209                        break;
    206210        }
  • lib/protocols_l2.c

    r77f79c7 rf7bcbfb  
    390390                case TRACE_TYPE_PFLOG:
    391391                        break;
     392                case TRACE_TYPE_UNKNOWN:
     393                        return NULL;
    392394        }
    393395
     
    423425                                case TRACE_TYPE_PFLOG:
    424426                                        break;
     427                                case TRACE_TYPE_UNKNOWN:
     428                                        return NULL;
    425429                        }
    426430                       
     
    464468        void *l;
    465469
    466         if (linktype == ~0U) {
     470        if (linktype == TRACE_TYPE_UNKNOWN) {
    467471                fprintf(stderr, "Unable to determine linktype for packet\n");
    468472                return NULL;
     
    486490                case TRACE_TYPE_METADATA:
    487491                case TRACE_TYPE_NONDATA:
     492                case TRACE_TYPE_UNKNOWN:
    488493                        return NULL;
    489494
     
    587592                case TRACE_TYPE_NONDATA:
    588593                case TRACE_TYPE_OPENBSD_LOOP:
     594                case TRACE_TYPE_UNKNOWN:
    589595                        return NULL;
    590596
     
    635641                case TRACE_TYPE_NONDATA:
    636642                case TRACE_TYPE_OPENBSD_LOOP:
     643                case TRACE_TYPE_UNKNOWN:
    637644                        /* No MAC address */
    638645                        return NULL;
  • lib/protocols_pktmeta.c

    r77f79c7 rf7bcbfb  
    162162                case TRACE_TYPE_NONDATA:
    163163                case TRACE_TYPE_OPENBSD_LOOP:
     164                case TRACE_TYPE_UNKNOWN:
    164165                        return NULL;
    165166        }
     
    218219                case TRACE_TYPE_NONDATA:
    219220                case TRACE_TYPE_OPENBSD_LOOP:
     221                case TRACE_TYPE_UNKNOWN:
    220222                        /* In this case, the pointer passed in does not point
    221223                         * to a metadata header and so we cannot get the
  • lib/trace.c

    rc04929c rf7bcbfb  
    10751075        if (packet->link_type == 0) {
    10761076                if (!packet->trace->format->get_link_type)
    1077                         return (libtrace_linktype_t)-1;
     1077                        return TRACE_TYPE_UNKNOWN;
    10781078                ((libtrace_packet_t *)packet)->link_type =
    10791079                        packet->trace->format->get_link_type(packet);
     
    12161216                        return -1;
    12171217                }
    1218                 if (libtrace_to_pcap_dlt(linktype) == ~1U) {
     1218                if (libtrace_to_pcap_dlt(linktype) == TRACE_DLT_ERROR) {
    12191219                        trace_set_err(packet->trace,TRACE_ERR_BAD_FILTER,
    12201220                                        "Unknown pcap equivalent linktype");
     
    12671267                return 1;       
    12681268
    1269         if (libtrace_to_pcap_dlt(linktype)==~0U) {
     1269        if (libtrace_to_pcap_dlt(linktype)==TRACE_DLT_ERROR) {
    12701270               
    12711271                /* If we cannot get a suitable DLT for the packet, it may
     
    12801280                free_packet_needed=true;
    12811281
    1282                 while (libtrace_to_pcap_dlt(linktype) == ~0U) {
     1282                while (libtrace_to_pcap_dlt(linktype) == TRACE_DLT_ERROR) {
    12831283                        if (!demote_packet(packet_copy)) {
    12841284                                trace_set_err(packet->trace,
  • libpacketdump/eth_2054.c

    rc7062df rf7bcbfb  
    6565                        break;
    6666                default:
    67                         strncat(buffer," (",sizeof(buffer));
     67                        snprintf(buffer, sizeof(buffer), "%s", " (");
    6868                        for (i=0;i<arp->ar_pln;i++) {
    6969                                snprintf(buffer,sizeof(buffer),"%s %02x",
    7070                                                buffer,(unsigned char)pro[i]);
    7171                        }
    72                         strncat(buffer,")",sizeof(buffer));
     72                        strncat(buffer,")",sizeof(buffer) - strlen(buffer) - 1);
    7373                        break;
    7474        }
  • libwandio/ior-peek.c

    r60f3c4c rf7bcbfb  
    241241        /* These no-ops are to stop the compiler whinging about unused
    242242         * parameters */
    243         oldsize = oldsize;
    244         res = res;
     243        (void)oldsize;
     244        (void)res;
    245245        return realloc(old,size);
    246246#endif
Note: See TracChangeset for help on using the changeset viewer.