Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/external/bsd/tcpdump/dist Update of tcpdump to version 4.9.0



details:   https://anonhg.NetBSD.org/src/rev/a3582cfdc3ef
branches:  trunk
changeset: 821427:a3582cfdc3ef
user:      spz <spz%NetBSD.org@localhost>
date:      Sun Feb 05 03:06:04 2017 +0000

description:
Update of tcpdump to version 4.9.0

This update fixes the following vulnerabilities:
CVE-2016-7922 CVE-2016-7923 CVE-2016-7924 CVE-2016-7925 CVE-2016-7926
CVE-2016-7927 CVE-2016-7928 CVE-2016-7929 CVE-2016-7930 CVE-2016-7931
CVE-2016-7932 CVE-2016-7933 CVE-2016-7934 CVE-2016-7935 CVE-2016-7936
CVE-2016-7937 CVE-2016-7938 CVE-2016-7939 CVE-2016-7940 CVE-2016-7973
CVE-2016-7974 CVE-2016-7975 CVE-2016-7983 CVE-2016-7984 CVE-2016-7985
CVE-2016-7986 CVE-2016-7992 CVE-2016-7993 CVE-2016-8574 CVE-2016-8575
CVE-2017-5202 CVE-2017-5203 CVE-2017-5204 CVE-2017-5205 CVE-2017-5341
CVE-2017-5342 CVE-2017-5482 CVE-2017-5483 CVE-2017-5484 CVE-2017-5485
CVE-2017-5486 (all buffer overflows in various parts of tcpdump)

Upstream Changelog:
    General updates:
    Improve separation frontend/backend (tcpdump/libnetdissect)
    Don't require IPv6 library support in order to support IPv6 addresses
    Introduce data types to use for integral values in packet structures
    Fix display of timestamps with -tt, -ttt and -ttttt options
    Fix some heap overflows found with American Fuzzy Lop by Hanno Boeck and others
        (More information in the log with CVE-2016-* and CVE-2017-*)
    Change the way protocols print link-layer addresses (Fix heap overflows
        in CALM-FAST and GeoNetworking printers)
    Pass correct caplen value to ether_print() and some other functions
    Fix lookup_nsap() to match what isonsap_string() expects
    Clean up relative time stamp printing (Fix an array overflow)
    Fix some alignment issues with GCC on Solaris 10 SPARC
    Add some ND_TTEST_/ND_TCHECK_ macros to simplify writing bounds checks
    Add a fn_printztn() which returns the number of bytes processed
    Add nd_init() and nd_cleanup() functions. Improve libsmi support
    Add CONTRIBUTING file
    Add a summary comment in all printers
    Compile with more warning options in devel mode if supported (-Wcast-qual, ...)
    Fix some leaks found by Valgrind/Memcheck
    Fix a bunch of de-constifications
    Squelch some Coverity warnings and some compiler warnings
    Update Coverity and Travis-CI setup
    Update Visual Studio files

    Frontend:
    Fix capsicum support to work with zerocopy buffers in bpf
    Try opening interfaces by name first, then by name-as-index
    Work around pcap_create() failures fetching time stamp type lists
    Fix a segmentation fault with 'tcpdump -J'
    Improve addrtostr6() bounds checking
    Add exit_tcpdump() function
    Don't drop CAP_SYS_CHROOT before chrooting
    Fixes issue where statistics not reported when -G and -W options used

    New printers supporting:
    Generic Protocol Extension for VXLAN (VXLAN-GPE)
    Home Networking Control Protocol (HNCP), RFCs 7787 and 7788
    Locator/Identifier Separation Protocol (LISP), type 3 and type 4 packets
    Marvell Extended Distributed Switch Architecture header (MEDSA)
    Network Service Header (NSH)
    REdis Serialization Protocol (RESP)

    Updated printers:
    802.11: Beginnings of 11ac radiotap support
    802.11: Check the Protected bit for management frames
    802.11: Do bounds checking on last_presentp before dereferencing it (Fix a heap overflow)
    802.11: Fix the radiotap printer to handle the special bits correctly
    802.11: If we have the MCS field, it's 11n
    802.11: Only print unknown frame type or subtype messages once
    802.11: Radiotap dBm values get printed as dB; Update a test output accordingly
    802.11: Source and destination addresses were backwards
    AH: Add a bounds check
    AH: Report to our caller that dissection failed if a bounds check fails
    AP1394: Print src > dst, not dst > src
    ARP: Don't assume the target hardware address is <= 6 octets long (Fix a heap overflow)
    ATALK: Add bounds and length checks (Fix heap overflows)
    ATM: Add some bounds checks (Fix a heap overflow)
    ATM: Fix an incorrect bounds check
    BFD: Update specification from draft to RFC 5880
    BFD: Update to print optional authentication field
    BGP: Add decoding of ADD-PATH capability
    BGP: Add support for the AIGP attribute (RFC7311)
    BGP: Print LARGE_COMMUNITY Path Attribute
    BGP: Update BGP numbers from IANA; Print minor values for FSM notification
    BOOTP: Add a bounds check
    Babel: Add decoder for source-specific extension
    CDP: Filter out non-printable characters
    CFM: Fixes to match the IEEE standard, additional bounds and length checks
    CSLIP: Add more bounds checks (Fix a heap overflow)
    ClassicalIPoATM: Add a bounds check on LLC+SNAP header (Fix a heap overflow)
    DHCP: Fix MUDURL and TZ options
    DHCPv6: Process MUDURL and TZ options
    DHCPv6: Update Status Codes with RFCs/IANA names
    DNS: Represent the "DNSSEC OK" bit as "DO" instead of "OK". Add a test case
    DTP: Improve packet integrity checks
    EGP: Fix bounds checks
    ESP: Don't use OpenSSL_add_all_algorithms() in OpenSSL 1.1.0 or later
    ESP: Handle OpenSSL 1.1.x
    Ethernet: Add some bounds checking before calling isoclns_print (Fix a heap overflow)
    Ethernet: Print the Length/Type field as length when needed
    FDDI: Fix -e output for FDDI
    FR: Add some packet-length checks and improve Q.933 printing (Fix heap overflows)
    GRE: Add some bounds checks (Fix heap overflows)
    Geneve: Fix error message with invalid option length; Update list option classes
    HNCP: Fix incorrect time interval format. Fix handling of IPv4 prefixes
    ICMP6: Fetch a 32-bit big-endian quantity with EXTRACT_32BITS()
    ICMP6: dagid is always an IPv6 address, not an opaque 128-bit string
    IGMP: Add a length check
    IP: Add a bounds check (Fix a heap overflow)
    IP: Check before fetching the protocol version (Fix a heap overflow)
    IP: Don't try to dissect if IP version != 4 (Fix a heap overflow)
    IP: Stop processing IPPROTO_ values once we hit IPPROTO_IPCOMP
    IPComp: Check whether we have the CPI before we fetch it (Fix a heap overflow)
    IPoFC: Fix -e output (IP-over-Fibre Channel)
    IPv6: Don't overwrite the destination IPv6 address for routing headers
    IPv6: Fix header printing
    IPv6: Stop processing IPPROTO_ values once we hit IPPROTO_IPCOMP
    ISAKMP: Clean up parsing of IKEv2 Security Associations
    ISOCLNS/IS-IS: Add support for Purge Originator Identifier (RFC6232) and test cases
    ISOCLNS/IS-IS: Don't overwrite packet data when checking the signature
    ISOCLNS/IS-IS: Filter out non-printable characters
    ISOCLNS/IS-IS: Fix segmentation faults
    ISOCLNS/IS-IS: Have signature_verify() do the copying and clearing
    ISOCLNS: Add some bounds checks
    Juniper: Make sure a Juniper header TLV isn't bigger than what's left in the packet (Fix a heap overflow)
    LLC/SNAP: With -e, print the LLC header before the SNAP header; without it, cut the SNAP header
    LLC: Add a bounds check (Fix a heap overflow)
    LLC: Clean up printing of LLC packets
    LLC: Fix the printing of RFC 948-style IP packets
    LLC: Skip the LLC and SNAP headers with -x for 802.11 and some other protocols
    LLDP: Implement IANA OUI and LLDP MUD option
    MPLS LSP ping: Update printing for RFC 4379, bug fixes, more bounds checks
    MPLS: "length" is now the *remaining* packet length
    MPLS: Add bounds and length checks (Fix a heap overflow)
    NFS: Add a test that makes unaligned accesses
    NFS: Don't assume the ONC RPC header is nicely aligned
    NFS: Don't overflow the Opaque_Handle buffer (Fix a segmentation fault)
    NFS: Don't run past the end of an NFSv3 file handle
    OLSR: Add a test to cover a HNA sgw case
    OLSR: Fix 'Advertised networks' count
    OLSR: Fix printing of smart-gateway HNAs in IPv4
    OSPF: Add a bounds check for the Hello packet options
    OSPF: Do more bounds checking
    OSPF: Fix a segmentation fault
    OSPF: Fix printing 'ospf_topology_values' default
    OTV: Add missing bounds checks
    PGM: Print the formatted IP address, not the raw binary address, as a string
    PIM: Add some bounds checking (Fix a heap overflow)
    PIMv2: Fix checksumming of Register messages
    PPI: Pass an adjusted struct pcap_pkthdr to the sub-printer
    PPP: Add some bounds checks (Fix a heap overflow)
    PPP: Report invalid PAP AACK/ANAK packets
    Q.933: Add a missing bounds check
    RADIUS: Add Value 13 "VLAN" to Tunnel-Type attribute
    RADIUS: Filter out non-printable characters
    RADIUS: Translate UDP/1700 as RADIUS
    RESP: Do better checking of RESP packets
    RPKI-RTR: Add a return value check for "fn_printn" call
    RPKI-RTR: Remove printing when truncated condition already detected
    RPL: Fix 'Consistency Check' control code
    RPL: Fix suboption print
    RSVP: An INTEGRITY object in a submessage covers only the submessage
    RSVP: Fix an infinite loop; Add bounds and length checks
    RSVP: Fix some if statements missing brackets
    RSVP: Have signature_verify() do the copying and clearing
    RTCP: Add some bounds checks
    RTP: Add some bounds checks, fix two segmentation faults
    SCTP: Do more bounds checking
    SFLOW: Fix bounds checking
    SLOW: Fix bugs, add checks
    SMB: Before fetching the flags2 field, make sure we have it
    SMB: Do bounds checks on NBNS resource types and resource data lengths
    SNMP: Clean up the "have libsmi but no modules loaded" case
    SNMP: Clean up the object abbreviation list and fix the code to match them
    SNMP: Do bounds checks when printing character and octet strings
    SNMP: Improve ASN.1 bounds checks
    SNMP: More bounds and length checks
    STP: Add a bunch of bounds checks, and fix some printing (Fix heap overflows)
    STP: Filter out non-printable characters
    TCP: Add bounds and length checks for packets with TCP option 20
    TCP: Correct TCP option Kind value for TCP Auth and add SCPS-TP
    TCP: Fix two bounds checks (Fix heap overflows)
    TCP: Make sure we have the data offset field before fetching it (Fix a heap overflow)
    TCP: Put TCP-AO option decoding right
    TFTP: Don't use strchr() to scan packet data (Fix a heap overflow)
    Telnet: Add some bounds checks
    TokenRing: Fix -e output
    UDLD: Fix an infinite loop
    UDP: Add a bounds check (Fix a heap overflow)
    UDP: Check against the packet length first
    UDP: Don't do the DDP-over-UDP heuristic check up front
    VAT: Add some bounds checks
    VTP: Add a test on Mgmt Domain Name length
    VTP: Add bounds checks and filter out non-printable characters
    VXLAN: Add a bound check and a test case
    ZeroMQ: Fix an infinite loop

diffstat:

 external/bsd/tcpdump/dist/CHANGES                                      |   212 +-
 external/bsd/tcpdump/dist/CONTRIBUTING                                 |   103 +
 external/bsd/tcpdump/dist/CREDITS                                      |     2 +-
 external/bsd/tcpdump/dist/INSTALL.txt                                  |    98 +-
 external/bsd/tcpdump/dist/Makefile.in                                  |    15 +-
 external/bsd/tcpdump/dist/PLATFORMS                                    |     9 +
 external/bsd/tcpdump/dist/VERSION                                      |     2 +-
 external/bsd/tcpdump/dist/aclocal.m4                                   |     3 +-
 external/bsd/tcpdump/dist/af.h                                         |     6 +-
 external/bsd/tcpdump/dist/l2vpn.h                                      |     1 +
 external/bsd/tcpdump/dist/mib.h                                        |     2 +-
 external/bsd/tcpdump/dist/netdissect.c                                 |   146 +
 external/bsd/tcpdump/dist/nfsfh.h                                      |     2 +-
 external/bsd/tcpdump/dist/oui.h                                        |    47 +-
 external/bsd/tcpdump/dist/tests/TESTLIST                               |   129 +-
 external/bsd/tcpdump/dist/tests/TESTonce                               |     6 +-
 external/bsd/tcpdump/dist/tests/aarp-heapoverflow-1.out                |     1 +
 external/bsd/tcpdump/dist/tests/aarp-heapoverflow-1.pcap               |   Bin 
 external/bsd/tcpdump/dist/tests/aarp-heapoverflow-2.out                |     1 +
 external/bsd/tcpdump/dist/tests/aarp-heapoverflow-2.pcap               |   Bin 
 external/bsd/tcpdump/dist/tests/arp-too-long-tha.out                   |     1 +
 external/bsd/tcpdump/dist/tests/arp-too-long-tha.pcap                  |   Bin 
 external/bsd/tcpdump/dist/tests/atm-heapoverflow.out                   |     1 +
 external/bsd/tcpdump/dist/tests/atm-heapoverflow.pcap                  |   Bin 
 external/bsd/tcpdump/dist/tests/atm-oam-heapoverflow.out               |     1 +
 external/bsd/tcpdump/dist/tests/atm-oam-heapoverflow.pcap              |   Bin 
 external/bsd/tcpdump/dist/tests/bad-ipv4-version-pgm-heapoverflow.out  |     1 +
 external/bsd/tcpdump/dist/tests/bad-ipv4-version-pgm-heapoverflow.pcap |   Bin 
 external/bsd/tcpdump/dist/tests/bfd-raw-auth-md5-v.out                 |   341 +
 external/bsd/tcpdump/dist/tests/bfd-raw-auth-md5.out                   |    31 +
 external/bsd/tcpdump/dist/tests/bfd-raw-auth-md5.pcap                  |   Bin 
 external/bsd/tcpdump/dist/tests/bfd-raw-auth-sha1-v.out                |   275 +
 external/bsd/tcpdump/dist/tests/bfd-raw-auth-sha1.out                  |    25 +
 external/bsd/tcpdump/dist/tests/bfd-raw-auth-sha1.pcap                 |   Bin 
 external/bsd/tcpdump/dist/tests/bfd-raw-auth-simple-v.out              |   150 +
 external/bsd/tcpdump/dist/tests/bfd-raw-auth-simple.out                |    15 +
 external/bsd/tcpdump/dist/tests/bfd-raw-auth-simple.pcap               |   Bin 
 external/bsd/tcpdump/dist/tests/bgp-large-community.out                |    42 +
 external/bsd/tcpdump/dist/tests/bgp-large-community.pcap               |   Bin 
 external/bsd/tcpdump/dist/tests/calm-fast-mac-lookup-heapoverflow.out  |     5 +
 external/bsd/tcpdump/dist/tests/calm-fast-mac-lookup-heapoverflow.pcap |   Bin 
 external/bsd/tcpdump/dist/tests/crypto.sh                              |     4 +-
 external/bsd/tcpdump/dist/tests/cve2015-0261-ipv6.out                  |     2 +-
 external/bsd/tcpdump/dist/tests/dhcp-mud.out                           |    36 +
 external/bsd/tcpdump/dist/tests/dhcp-mud.pcap                          |   Bin 
 external/bsd/tcpdump/dist/tests/dhcpv6-mud.out                         |     5 +
 external/bsd/tcpdump/dist/tests/dhcpv6-mud.pcap                        |   Bin 
 external/bsd/tcpdump/dist/tests/evb.out                                |   120 +-
 external/bsd/tcpdump/dist/tests/frf15-heapoverflow.out                 |     1 +
 external/bsd/tcpdump/dist/tests/frf15-heapoverflow.pcap                |   Bin 
 external/bsd/tcpdump/dist/tests/geonet-mac-lookup-heapoverflow.out     |     1 +
 external/bsd/tcpdump/dist/tests/geonet-mac-lookup-heapoverflow.pcap    |   Bin 
 external/bsd/tcpdump/dist/tests/gre-heapoverflow-1.out                 |     8 +
 external/bsd/tcpdump/dist/tests/gre-heapoverflow-1.pcap                |   Bin 
 external/bsd/tcpdump/dist/tests/gre-heapoverflow-2.out                 |     6 +
 external/bsd/tcpdump/dist/tests/gre-heapoverflow-2.pcap                |   Bin 
 external/bsd/tcpdump/dist/tests/heap-overflow-1.out                    |     1 +
 external/bsd/tcpdump/dist/tests/heap-overflow-1.pcap                   |   Bin 
 external/bsd/tcpdump/dist/tests/heap-overflow-2.out                    |     1 +
 external/bsd/tcpdump/dist/tests/heap-overflow-2.pcap                   |   Bin 
 external/bsd/tcpdump/dist/tests/heapoverflow-EXTRACT_16BITS.out        |     1 +
 external/bsd/tcpdump/dist/tests/heapoverflow-EXTRACT_16BITS.pcap       |   Bin 
 external/bsd/tcpdump/dist/tests/heapoverflow-atalk_print.out           |     1 +
 external/bsd/tcpdump/dist/tests/heapoverflow-atalk_print.pcap          |   Bin 
 external/bsd/tcpdump/dist/tests/heapoverflow-in_checksum.out           |     3 +
 external/bsd/tcpdump/dist/tests/heapoverflow-in_checksum.pcap          |   Bin 
 external/bsd/tcpdump/dist/tests/heapoverflow-ip_print_demux.out        |     6 +
 external/bsd/tcpdump/dist/tests/heapoverflow-ip_print_demux.pcap       |   Bin 
 external/bsd/tcpdump/dist/tests/heapoverflow-ppp_hdlc_if_print.out     |     1 +
 external/bsd/tcpdump/dist/tests/heapoverflow-ppp_hdlc_if_print.pcap    |   Bin 
 external/bsd/tcpdump/dist/tests/heapoverflow-q933_printq.out           |     2 +
 external/bsd/tcpdump/dist/tests/heapoverflow-q933_printq.pcap          |   Bin 
 external/bsd/tcpdump/dist/tests/heapoverflow-sl_if_print.out           |     1 +
 external/bsd/tcpdump/dist/tests/heapoverflow-sl_if_print.pcap          |   Bin 
 external/bsd/tcpdump/dist/tests/heapoverflow-tcp_print.out             |     2 +
 external/bsd/tcpdump/dist/tests/heapoverflow-tcp_print.pcap            |   Bin 
 external/bsd/tcpdump/dist/tests/hncp.out                               |    12 +-
 external/bsd/tcpdump/dist/tests/ikev2pI2-segfault-v.out                |     8 +
 external/bsd/tcpdump/dist/tests/ikev2pI2-segfault.out                  |     1 +
 external/bsd/tcpdump/dist/tests/ikev2pI2-segfault.pcap                 |   Bin 
 external/bsd/tcpdump/dist/tests/ipcomp-heapoverflow.out                |     2 +
 external/bsd/tcpdump/dist/tests/ipcomp-heapoverflow.pcap               |   Bin 
 external/bsd/tcpdump/dist/tests/ipv6hdr-heapoverflow-v.out             |     1 +
 external/bsd/tcpdump/dist/tests/ipv6hdr-heapoverflow.out               |     1 +
 external/bsd/tcpdump/dist/tests/ipv6hdr-heapoverflow.pcap              |   Bin 
 external/bsd/tcpdump/dist/tests/isis-seg-fault-1-v.out                 |   301 +
 external/bsd/tcpdump/dist/tests/isis-seg-fault-1-v.sh                  |    17 +
 external/bsd/tcpdump/dist/tests/isis-seg-fault-1.pcap                  |   Bin 
 external/bsd/tcpdump/dist/tests/isis-seg-fault-2-v.out                 |   222 +
 external/bsd/tcpdump/dist/tests/isis-seg-fault-2.pcap                  |   Bin 
 external/bsd/tcpdump/dist/tests/isis-seg-fault-3-v.out                 |     4 +
 external/bsd/tcpdump/dist/tests/isis-seg-fault-3.pcap                  |   Bin 
 external/bsd/tcpdump/dist/tests/isoclns-heapoverflow-2.out             |     1 +
 external/bsd/tcpdump/dist/tests/isoclns-heapoverflow-2.pcap            |   Bin 
 external/bsd/tcpdump/dist/tests/isoclns-heapoverflow-3.out             |     1 +
 external/bsd/tcpdump/dist/tests/isoclns-heapoverflow-3.pcap            |   Bin 
 external/bsd/tcpdump/dist/tests/isoclns-heapoverflow.out               |     1 +
 external/bsd/tcpdump/dist/tests/isoclns-heapoverflow.pcap              |   Bin 
 external/bsd/tcpdump/dist/tests/juniper_header-heapoverflow.out        |     1 +
 external/bsd/tcpdump/dist/tests/juniper_header-heapoverflow.pcap       |   Bin 
 external/bsd/tcpdump/dist/tests/kday1.out                              |    15 +-
 external/bsd/tcpdump/dist/tests/kday2.out                              |     9 +-
 external/bsd/tcpdump/dist/tests/kday3.out                              |    13 +-
 external/bsd/tcpdump/dist/tests/kday4.out                              |    12 +-
 external/bsd/tcpdump/dist/tests/kday5.out                              |     7 +-
 external/bsd/tcpdump/dist/tests/kday7.out                              |    13 +-
 external/bsd/tcpdump/dist/tests/kday8.out                              |     9 +-
 external/bsd/tcpdump/dist/tests/llc-xid-heapoverflow.out               |     1 +
 external/bsd/tcpdump/dist/tests/llc-xid-heapoverflow.pcap              |   Bin 
 external/bsd/tcpdump/dist/tests/lldp_mudurl-v.out                      |    62 +
 external/bsd/tcpdump/dist/tests/lldp_mudurl-vv.out                     |   106 +
 external/bsd/tcpdump/dist/tests/lldp_mudurl.pcap                       |   Bin 
 external/bsd/tcpdump/dist/tests/lmp-v.sh                               |     4 +-
 external/bsd/tcpdump/dist/tests/mpls-label-heapoverflow.out            |     2 +
 external/bsd/tcpdump/dist/tests/mpls-label-heapoverflow.pcap           |   Bin 
 external/bsd/tcpdump/dist/tests/mstp-v.out                             |    80 +-
 external/bsd/tcpdump/dist/tests/nflog-e.sh                             |     2 +-
 external/bsd/tcpdump/dist/tests/nfs-seg-fault-1.out                    |     1 +
 external/bsd/tcpdump/dist/tests/nfs-seg-fault-1.pcap                   |   Bin 
 external/bsd/tcpdump/dist/tests/of10_s4810-vvvv.out                    |    16 +-
 external/bsd/tcpdump/dist/tests/ospf2-seg-fault-1-v.out                |     9 +
 external/bsd/tcpdump/dist/tests/ospf2-seg-fault-1.pcap                 |   Bin 
 external/bsd/tcpdump/dist/tests/otv-heapoverflow-1.out                 |    10 +
 external/bsd/tcpdump/dist/tests/otv-heapoverflow-1.pcap                |   Bin 
 external/bsd/tcpdump/dist/tests/otv-heapoverflow-2.out                 |    11 +
 external/bsd/tcpdump/dist/tests/otv-heapoverflow-2.pcap                |   Bin 
 external/bsd/tcpdump/dist/tests/q933-heapoverflow-2.out                |    24 +
 external/bsd/tcpdump/dist/tests/q933-heapoverflow-2.pcap               |   Bin 
 external/bsd/tcpdump/dist/tests/radiotap-heapoverflow.out              |     1 +
 external/bsd/tcpdump/dist/tests/radiotap-heapoverflow.pcap             |   Bin 
 external/bsd/tcpdump/dist/tests/relts-0x80000000.out                   |     2 +
 external/bsd/tcpdump/dist/tests/relts-0x80000000.pcap                  |   Bin 
 external/bsd/tcpdump/dist/tests/resp_3.out                             |    12 +-
 external/bsd/tcpdump/dist/tests/rsvp-inf-loop-2-v.out                  |    12 +
 external/bsd/tcpdump/dist/tests/rsvp-inf-loop-2.pcap                   |   Bin 
 external/bsd/tcpdump/dist/tests/rtp-seg-fault-1.out                    |     2 +
 external/bsd/tcpdump/dist/tests/rtp-seg-fault-1.pcap                   |   Bin 
 external/bsd/tcpdump/dist/tests/rtp-seg-fault-2.out                    |     2 +
 external/bsd/tcpdump/dist/tests/rtp-seg-fault-2.pcap                   |   Bin 
 external/bsd/tcpdump/dist/tests/scps_invalid.out                       |     2 +
 external/bsd/tcpdump/dist/tests/scps_invalid.pcap                      |   Bin 
 external/bsd/tcpdump/dist/tests/snmp-heapoverflow-1.out                |    21 +
 external/bsd/tcpdump/dist/tests/snmp-heapoverflow-1.pcap               |   Bin 
 external/bsd/tcpdump/dist/tests/snmp-heapoverflow-2.out                |     1 +
 external/bsd/tcpdump/dist/tests/snmp-heapoverflow-2.pcap               |   Bin 
 external/bsd/tcpdump/dist/tests/spb_bpduv4-v.out                       |   400 +
 external/bsd/tcpdump/dist/tests/stp-heapoverflow-1.out                 |    27 +
 external/bsd/tcpdump/dist/tests/stp-heapoverflow-1.pcap                |   Bin 
 external/bsd/tcpdump/dist/tests/stp-heapoverflow-2.out                 |    27 +
 external/bsd/tcpdump/dist/tests/stp-heapoverflow-2.pcap                |   Bin 
 external/bsd/tcpdump/dist/tests/stp-heapoverflow-3.out                 |    27 +
 external/bsd/tcpdump/dist/tests/stp-heapoverflow-3.pcap                |   Bin 
 external/bsd/tcpdump/dist/tests/stp-heapoverflow-4.out                 |    27 +
 external/bsd/tcpdump/dist/tests/stp-heapoverflow-4.pcap                |   Bin 
 external/bsd/tcpdump/dist/tests/stp-heapoverflow-5.out                 |    27 +
 external/bsd/tcpdump/dist/tests/stp-heapoverflow-5.pcap                |   Bin 
 external/bsd/tcpdump/dist/tests/tcp-auth-heapoverflow.out              |     2 +
 external/bsd/tcpdump/dist/tests/tcp-auth-heapoverflow.pcap             |   Bin 
 external/bsd/tcpdump/dist/tests/tcp_header_heapoverflow.out            |     2 +
 external/bsd/tcpdump/dist/tests/tcp_header_heapoverflow.pcap           |   Bin 
 external/bsd/tcpdump/dist/tests/tftp-heapoverflow.out                  |     2 +
 external/bsd/tcpdump/dist/tests/tftp-heapoverflow.pcap                 |   Bin 
 external/bsd/tcpdump/dist/tests/trunc_aack.out                         |     1 +
 external/bsd/tcpdump/dist/tests/truncated-aack.pcap                    |   Bin 
 external/bsd/tcpdump/dist/tests/udld-inf-loop-1-v.out                  |     9 +
 external/bsd/tcpdump/dist/tests/udld-inf-loop-1.pcap                   |   Bin 
 external/bsd/tcpdump/dist/tests/udp-length-heapoverflow.out            |     2 +
 external/bsd/tcpdump/dist/tests/udp-length-heapoverflow.pcap           |   Bin 
 external/bsd/tcpdump/dist/tests/zmtp1-inf-loop-1.out                   |     2 +
 external/bsd/tcpdump/dist/tests/zmtp1-inf-loop-1.pcap                  |   Bin 
 external/bsd/tcpdump/dist/win32/prj/WinDump.sln                        |    20 +
 external/bsd/tcpdump/dist/win32/prj/WinDump.vcproj                     |  3950 ++++++++++
 external/bsd/tcpdump/dist/win32/src/ether_ntohost.c                    |   219 +
 173 files changed, 7285 insertions(+), 368 deletions(-)

diffs (truncated from 8762 to 300 lines):

diff -r 77a6de16ee0c -r a3582cfdc3ef external/bsd/tcpdump/dist/CHANGES
--- a/external/bsd/tcpdump/dist/CHANGES Sun Feb 05 01:55:03 2017 +0000
+++ b/external/bsd/tcpdump/dist/CHANGES Sun Feb 05 03:06:04 2017 +0000
@@ -1,34 +1,186 @@
-Tuesday October 25, 2016 mcr%sandelman.ca@localhost
-  Summary for 4.8.1 tcpdump release
+Wednesday January 18, 2017 devel.fx.lebail%orange.fr@localhost
+  Summary for 4.9.0 tcpdump release
+    General updates:
+    Improve separation frontend/backend (tcpdump/libnetdissect)
+    Don't require IPv6 library support in order to support IPv6 addresses
+    Introduce data types to use for integral values in packet structures
+    Fix display of timestamps with -tt, -ttt and -ttttt options
+    Fix some heap overflows found with American Fuzzy Lop by Hanno Boeck and others
+        (More information in the log with CVE-2016-* and CVE-2017-*)
+    Change the way protocols print link-layer addresses (Fix heap overflows
+        in CALM-FAST and GeoNetworking printers)
+    Pass correct caplen value to ether_print() and some other functions
+    Fix lookup_nsap() to match what isonsap_string() expects
+    Clean up relative time stamp printing (Fix an array overflow)
+    Fix some alignment issues with GCC on Solaris 10 SPARC
+    Add some ND_TTEST_/ND_TCHECK_ macros to simplify writing bounds checks
+    Add a fn_printztn() which returns the number of bytes processed
+    Add nd_init() and nd_cleanup() functions. Improve libsmi support
+    Add CONTRIBUTING file
+    Add a summary comment in all printers
+    Compile with more warning options in devel mode if supported (-Wcast-qual, ...)
+    Fix some leaks found by Valgrind/Memcheck
+    Fix a bunch of de-constifications
+    Squelch some Coverity warnings and some compiler warnings
+    Update Coverity and Travis-CI setup
+    Update Visual Studio files
+
+    Frontend:
+    Fix capsicum support to work with zerocopy buffers in bpf
+    Try opening interfaces by name first, then by name-as-index
+    Work around pcap_create() failures fetching time stamp type lists
+    Fix a segmentation fault with 'tcpdump -J'
+    Improve addrtostr6() bounds checking
+    Add exit_tcpdump() function
+    Don't drop CAP_SYS_CHROOT before chrooting
+    Fixes issue where statistics not reported when -G and -W options used
+
+    New printers supporting:
+    Generic Protocol Extension for VXLAN (VXLAN-GPE)
+    Home Networking Control Protocol (HNCP), RFCs 7787 and 7788
+    Locator/Identifier Separation Protocol (LISP), type 3 and type 4 packets
+    Marvell Extended Distributed Switch Architecture header (MEDSA)
+    Network Service Header (NSH)
+    REdis Serialization Protocol (RESP)
+
+    Updated printers:
+    802.11: Beginnings of 11ac radiotap support
+    802.11: Check the Protected bit for management frames
+    802.11: Do bounds checking on last_presentp before dereferencing it (Fix a heap overflow)
+    802.11: Fix the radiotap printer to handle the special bits correctly
+    802.11: If we have the MCS field, it's 11n
+    802.11: Only print unknown frame type or subtype messages once
+    802.11: Radiotap dBm values get printed as dB; Update a test output accordingly
+    802.11: Source and destination addresses were backwards
+    AH: Add a bounds check
+    AH: Report to our caller that dissection failed if a bounds check fails
+    AP1394: Print src > dst, not dst > src
+    ARP: Don't assume the target hardware address is <= 6 octets long (Fix a heap overflow)
+    ATALK: Add bounds and length checks (Fix heap overflows)
+    ATM: Add some bounds checks (Fix a heap overflow)
+    ATM: Fix an incorrect bounds check
+    BFD: Update specification from draft to RFC 5880
+    BFD: Update to print optional authentication field
+    BGP: Add decoding of ADD-PATH capability
+    BGP: Add support for the AIGP attribute (RFC7311)
+    BGP: Print LARGE_COMMUNITY Path Attribute
+    BGP: Update BGP numbers from IANA; Print minor values for FSM notification
+    BOOTP: Add a bounds check
+    Babel: Add decoder for source-specific extension
+    CDP: Filter out non-printable characters
+    CFM: Fixes to match the IEEE standard, additional bounds and length checks
+    CSLIP: Add more bounds checks (Fix a heap overflow)
+    ClassicalIPoATM: Add a bounds check on LLC+SNAP header (Fix a heap overflow)
+    DHCP: Fix MUDURL and TZ options
+    DHCPv6: Process MUDURL and TZ options
+    DHCPv6: Update Status Codes with RFCs/IANA names
+    DNS: Represent the "DNSSEC OK" bit as "DO" instead of "OK". Add a test case
+    DTP: Improve packet integrity checks
+    EGP: Fix bounds checks
+    ESP: Don't use OpenSSL_add_all_algorithms() in OpenSSL 1.1.0 or later
+    ESP: Handle OpenSSL 1.1.x
+    Ethernet: Add some bounds checking before calling isoclns_print (Fix a heap overflow)
+    Ethernet: Print the Length/Type field as length when needed
+    FDDI: Fix -e output for FDDI
+    FR: Add some packet-length checks and improve Q.933 printing (Fix heap overflows)
+    GRE: Add some bounds checks (Fix heap overflows)
+    Geneve: Fix error message with invalid option length; Update list option classes
+    HNCP: Fix incorrect time interval format. Fix handling of IPv4 prefixes
+    ICMP6: Fetch a 32-bit big-endian quantity with EXTRACT_32BITS()
+    ICMP6: dagid is always an IPv6 address, not an opaque 128-bit string
+    IGMP: Add a length check
+    IP: Add a bounds check (Fix a heap overflow)
+    IP: Check before fetching the protocol version (Fix a heap overflow)
+    IP: Don't try to dissect if IP version != 4 (Fix a heap overflow)
+    IP: Stop processing IPPROTO_ values once we hit IPPROTO_IPCOMP
+    IPComp: Check whether we have the CPI before we fetch it (Fix a heap overflow)
+    IPoFC: Fix -e output (IP-over-Fibre Channel)
+    IPv6: Don't overwrite the destination IPv6 address for routing headers
+    IPv6: Fix header printing
+    IPv6: Stop processing IPPROTO_ values once we hit IPPROTO_IPCOMP
+    ISAKMP: Clean up parsing of IKEv2 Security Associations
+    ISOCLNS/IS-IS: Add support for Purge Originator Identifier (RFC6232) and test cases
+    ISOCLNS/IS-IS: Don't overwrite packet data when checking the signature
+    ISOCLNS/IS-IS: Filter out non-printable characters
+    ISOCLNS/IS-IS: Fix segmentation faults
+    ISOCLNS/IS-IS: Have signature_verify() do the copying and clearing
+    ISOCLNS: Add some bounds checks
+    Juniper: Make sure a Juniper header TLV isn't bigger than what's left in the packet (Fix a heap overflow)
+    LLC/SNAP: With -e, print the LLC header before the SNAP header; without it, cut the SNAP header
+    LLC: Add a bounds check (Fix a heap overflow)
+    LLC: Clean up printing of LLC packets
+    LLC: Fix the printing of RFC 948-style IP packets
+    LLC: Skip the LLC and SNAP headers with -x for 802.11 and some other protocols
+    LLDP: Implement IANA OUI and LLDP MUD option
+    MPLS LSP ping: Update printing for RFC 4379, bug fixes, more bounds checks
+    MPLS: "length" is now the *remaining* packet length
+    MPLS: Add bounds and length checks (Fix a heap overflow)
+    NFS: Add a test that makes unaligned accesses
+    NFS: Don't assume the ONC RPC header is nicely aligned
+    NFS: Don't overflow the Opaque_Handle buffer (Fix a segmentation fault)
+    NFS: Don't run past the end of an NFSv3 file handle
+    OLSR: Add a test to cover a HNA sgw case
+    OLSR: Fix 'Advertised networks' count
+    OLSR: Fix printing of smart-gateway HNAs in IPv4
+    OSPF: Add a bounds check for the Hello packet options
+    OSPF: Do more bounds checking
+    OSPF: Fix a segmentation fault
+    OSPF: Fix printing 'ospf_topology_values' default
+    OTV: Add missing bounds checks
+    PGM: Print the formatted IP address, not the raw binary address, as a string
+    PIM: Add some bounds checking (Fix a heap overflow)
+    PIMv2: Fix checksumming of Register messages
+    PPI: Pass an adjusted struct pcap_pkthdr to the sub-printer
+    PPP: Add some bounds checks (Fix a heap overflow)
+    PPP: Report invalid PAP AACK/ANAK packets
+    Q.933: Add a missing bounds check
+    RADIUS: Add Value 13 "VLAN" to Tunnel-Type attribute
+    RADIUS: Filter out non-printable characters
+    RADIUS: Translate UDP/1700 as RADIUS
+    RESP: Do better checking of RESP packets
+    RPKI-RTR: Add a return value check for "fn_printn" call
+    RPKI-RTR: Remove printing when truncated condition already detected
+    RPL: Fix 'Consistency Check' control code
+    RPL: Fix suboption print
+    RSVP: An INTEGRITY object in a submessage covers only the submessage
+    RSVP: Fix an infinite loop; Add bounds and length checks
+    RSVP: Fix some if statements missing brackets
+    RSVP: Have signature_verify() do the copying and clearing
+    RTCP: Add some bounds checks
+    RTP: Add some bounds checks, fix two segmentation faults
+    SCTP: Do more bounds checking
+    SFLOW: Fix bounds checking
+    SLOW: Fix bugs, add checks
+    SMB: Before fetching the flags2 field, make sure we have it
+    SMB: Do bounds checks on NBNS resource types and resource data lengths
+    SNMP: Clean up the "have libsmi but no modules loaded" case
+    SNMP: Clean up the object abbreviation list and fix the code to match them
+    SNMP: Do bounds checks when printing character and octet strings
+    SNMP: Improve ASN.1 bounds checks
+    SNMP: More bounds and length checks
+    STP: Add a bunch of bounds checks, and fix some printing (Fix heap overflows)
+    STP: Filter out non-printable characters
+    TCP: Add bounds and length checks for packets with TCP option 20
+    TCP: Correct TCP option Kind value for TCP Auth and add SCPS-TP
+    TCP: Fix two bounds checks (Fix heap overflows)
+    TCP: Make sure we have the data offset field before fetching it (Fix a heap overflow)
+    TCP: Put TCP-AO option decoding right
+    TFTP: Don't use strchr() to scan packet data (Fix a heap overflow)
+    Telnet: Add some bounds checks
+    TokenRing: Fix -e output
+    UDLD: Fix an infinite loop
+    UDP: Add a bounds check (Fix a heap overflow)
+    UDP: Check against the packet length first
+    UDP: Don't do the DDP-over-UDP heuristic check up front
+    VAT: Add some bounds checks
+    VTP: Add a test on Mgmt Domain Name length
+    VTP: Add bounds checks and filter out non-printable characters
+    VXLAN: Add a bound check and a test case
+    ZeroMQ: Fix an infinite loop
+
+Tuesday April 14, 2015 guy%alum.mit.edu@localhost
+  Summary for 4.8.0 tcpdump release
        Fix "-x" for Apple PKTAP and PPI packets
-        Use PRIx64 to print a 64-bit number in hex.
-        Printer for HNCP (RFCs 7787 and 7788).
-        dagid is always an IPv6 address, not an opaque 128-bit string, and other fixes to RPL printer.
-        RSVP: Add bounds and length checks
-        OSPF: Do more bounds checking
-        Handle OpenSSL 1.1.x.
-        Initial support for the REdis Serialization Protocol known as RESP.
-        Add printing function for Generic Protocol Extension for VXLAN
-            draft-ietf-nvo3-vxlan-gpe-01
-        Network Service Header: draft-ietf-sfc-nsh-01
-        Don't recompile the filter if the new file has the same DLT.
-        Pass an adjusted struct pcap_pkthdr to the sub-printer.
-        Add three test cases for already fixed CVEs
-           CVE-2014-8767: OLSR
-           CVE-2014-8768: Geonet
-           CVE-2014-8769: AODV
-        Don't do the DDP-over-UDP heuristic first: GitHub issue #499.
-        Use the new debugging routines in libpcap.
-        Harmonize TCP source or destination ports tests with UDP ones
-        Introduce data types to use for integral values in packet structures.
-        RSVP: Fix an infinite loop
-        Support of Type 3 and Type 4 LISP packets.
-        Don't require IPv6 library support in order to support IPv6 addresses.
-        Many many changes to support libnetdissect usage.
-        Add a test that makes unaligned accesses: GitHub issue #478.
-        add a DNSSEC test case: GH #445 and GH #467.
-        BGP: add decoding of ADD-PATH capability
-        fixes to LLC header printing, and RFC948-style IP packets
 
 Friday April 10, 2015 guy%alum.mit.edu@localhost
   Summary for 4.7.4 tcpdump release
diff -r 77a6de16ee0c -r a3582cfdc3ef external/bsd/tcpdump/dist/CONTRIBUTING
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/external/bsd/tcpdump/dist/CONTRIBUTING    Sun Feb 05 03:06:04 2017 +0000
@@ -0,0 +1,103 @@
+Some Information for Contributors
+---------------------------------
+You want to contribute to Tcpdump, Thanks!
+Please, read these lines.
+
+1) Fork the Tcpdump repository on GitHub from
+   https://github.com/the-tcpdump-group/tcpdump
+   (See https://help.github.com/articles/fork-a-repo/)
+
+2) Setup an optional Travis-CI build
+   You can setup a travis build for your fork. So, you can test your changes
+   on Linux and OSX before sending pull requests.
+   (See http://docs.travis-ci.com/user/getting-started/)
+
+3) Clone your repository
+   git clone https://github.com/<username>/tcpdump.git
+
+4) Do a 'touch .devel' in your working directory.
+   Currently, the effect is
+   a) add (via configure, in Makefile) some warnings options ( -Wall
+   -Wmissing-prototypes -Wstrict-prototypes, ...) to the compiler if it
+   supports these options,
+   b) have the Makefile support "make depend" and the configure script run it.
+
+5) Configure and build
+   ./configure && make -s && make check
+
+6) Add/update sample.pcap files
+   We use tests directory to do regression tests on the dissection of captured
+   packets, by running tcpdump against a savefile sample.pcap, created with -w
+   option and comparing the results with a text file sample.out giving the
+   expected results.
+
+   Any new/updated fields in a dissector must be present in a sample.pcap file
+   and the corresponding output file.
+
+   Configuration is set in tests/TESTLIST.
+   Each line in this file has the following format:
+   test-name   sample.pcap   sample.out   tcpdump-options
+
+   the sample.out file can be build by:
+   (cd tests && ../tcpdump -n -r sample.pcap tcpdump-options > sample.out)
+
+   It is often useful to have test outputs with different verbosity levels
+   (none, -v, -vv, -vvv, etc.) depending on the code.
+
+7) Test with 'make check'
+   Don't send a pull request if 'make check' gives failed tests.
+
+8) Rebase your commits against upstream/master
+   (To keep linearity)
+
+9) Initiate and send a pull request
+   (See https://help.github.com/articles/using-pull-requests/)
+
+Some remarks
+------------
+a) A thorough reading of some other printers code is useful.
+
+b) Put the normative reference if any as comments (RFC, etc.).
+
+c) Put the format of packets/headers/options as comments.
+
+d) The printer may receive incomplete packet in the buffer, truncated at any
+   random position, for example by capturing with '-s size' option.
+   Thus use ND_TTEST, ND_TTEST2, ND_TCHECK or ND_TCHECK2 for bound checking.
+   For ND_TCHECK2:
+     Define : static const char tstr[] = " [|protocol]";
+     Define a label: trunc
+     Print with: ND_PRINT((ndo, "%s", tstr));
+   You can test the code via:
+     sudo ./tcpdump -s snaplen [-v][v][...] -i lo # in a terminal
+     sudo tcpreplay -i lo sample.pcap             # in another terminal
+   You should try several values for snaplen to do various truncation.
+
+e) Do invalid packet checks in code: Think that your code can receive in input




Home | Main Index | Thread Index | Old Index