Source-Changes-HG archive

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

[src/trunk]: src/external/bsd/libpcap/dist Sunday, July 22, 2018



details:   https://anonhg.NetBSD.org/src/rev/507adbe6be14
branches:  trunk
changeset: 454889:507adbe6be14
user:      christos <christos%NetBSD.org@localhost>
date:      Tue Oct 01 16:00:25 2019 +0000

description:
Sunday, July 22, 2018
  Summary for 1.9.1 libpcap release
    Mention pcap_get_required_select_timeout() in the main pcap man page
    Fix pcap-usb-linux.c build on systems with musl
    Fix assorted man page and other documentation issues
    Plug assorted memory leaks
    Documentation changes to use https:
    Changes to how time stamp calculations are done
    Lots of tweaks to make newer compilers happier and warning-free and
        to fix instances of C undefined behavior
    Warn if AC_PROG_CC_C99 can't enable C99 support
    Rename pcap_set_protocol() to  pcap_set_protocol_linux().
    Align pcap_t private data on an 8-byte boundary.
    Fix various error messages
    Use 64-bit clean API in dag_findalldevs()
    Fix cleaning up after some errors
    Work around some ethtool ioctl bugs in newer Linux kernels (GitHub
        issue #689)
    Add backwards compatibility sections to some man pages (GitHub issue
        #745)
    Fix autotool configuration on AIX and macOS
    Don't export bpf_filter_with_aux_data() or struct bpf_aux_data;
        they're internal-only and subject to change
    Fix pcapng block size checking
    On macOS, don't build rpcapd or test programs any fatter than they
        need to be
    Fix reading of capture statistics for Linux USB
    Fix packet size values for Linux USB packets (GitHub issue #808)
    Check only VID in VLAN test in filterss (GitHub issue #461)
    Fix pcap_list_datalinks on 802.11 devices on macOS
    Fix overflows with very large snapshot length in pcap file
    Improve parsing of rpcapd configuration file (GitHub issue #767)
    Handle systems without strlcpy() or strlcat() better
    Fix crashes and other errors with invalid filter expressions
    Fix use of uninitialized file descriptor in remote capture
    Fix some CMake issues
    Fix some divide-by-zero issues with the filter compiler
    Work around a GNU libc bug in pcap_nametonetaddr()
    Add support for DLT_LINUX_SLL2
    Fix handling of the packet-count argument for Myricom SNF devices
    Fix --disable-rdma in configure script (GitHub issue #782)
    Fix compilation of TurboCap support (GitHub issue #764)
    Constify first argument to pcap_findalldevs_ex()
    Fix a number of issues when running rpcapd as an inetd-style daemon
    Fix CMake issues with D-Bus libraries
    In rpcapd, clean up termination of a capture session
    Redo remote capture protocol negotiation
    In rpcapd, report the same error for "invalid user name" and
        "invalid password", to make brute-forcing harder
    For remote captures, add an error code for "the server requires TLS"
    Fix pcap_dump_fopen() on Windows to avoid clashes between
        {Win,N}Pcap and application C runtimes
    Fix exporting of functions from Windows DLLs (GitHub issue #810)
    Fix building as part of Npcap
    Allow rpcapd to rebind more rapidly
    Fix building shared libpcap library on midipix (midipix.org)
    Fix hack to detect UTF-16LE adapter names on Windows not to go past
        the end of the string
    Fix handling of "wireless WAN" (mobile phone network modems) on
        Windows with WinPcap/Npcap (GitHub issue #824)
    Have pcap_dump_open_append() create the dump file if it doesn't
        exists (GitHub issue #247)
    Fix the maxmum snapshot length for DLT_USBPCAP
    Use -fPIC when building for 64-bit SPARC on Linux (GitHub issue #837)
    Fix CMake 64-bit library installation directory on some Linux
        distributions
    Boost the TPACKET_V3 timeout to the maximum if a timeout of 0 was
        specified
    Five CVE-2019-15161, CVE-2019-15162, CVE-2019-15163, CVE-2019-15164, CVE-2019-15165
    Fixes for CVE-2018-16301, errors in pcapng reading.
    PCAPNG reader applies some sanity checks before doing malloc().

diffstat:

 external/bsd/libpcap/dist/CHANGES                                |    72 +
 external/bsd/libpcap/dist/CMakeLists.txt                         |   368 ++-
 external/bsd/libpcap/dist/CREDITS                                |     2 +-
 external/bsd/libpcap/dist/INSTALL.md                             |     5 +-
 external/bsd/libpcap/dist/Makefile.in                            |    26 +-
 external/bsd/libpcap/dist/VERSION                                |     2 +-
 external/bsd/libpcap/dist/aclocal.m4                             |    23 +-
 external/bsd/libpcap/dist/cmake/Modules/FindPacket.cmake         |    13 +-
 external/bsd/libpcap/dist/cmakeconfig.h.in                       |    23 +-
 external/bsd/libpcap/dist/config.h.in                            |    18 +-
 external/bsd/libpcap/dist/configure                              |  1279 ++++++---
 external/bsd/libpcap/dist/configure.ac                           |   283 +-
 external/bsd/libpcap/dist/doc/README.Win32.md                    |     3 +
 external/bsd/libpcap/dist/doc/README.dag                         |     4 +-
 external/bsd/libpcap/dist/doc/README.linux.md                    |     4 +-
 external/bsd/libpcap/dist/fmtutils.c                             |    99 +-
 external/bsd/libpcap/dist/fmtutils.h                             |     5 +
 external/bsd/libpcap/dist/ftmacros.h                             |    18 +-
 external/bsd/libpcap/dist/missing/asprintf.c                     |   101 +
 external/bsd/libpcap/dist/missing/snprintf.c                     |    12 +-
 external/bsd/libpcap/dist/missing/strlcat.c                      |    61 +
 external/bsd/libpcap/dist/missing/strlcpy.c                      |    56 +
 external/bsd/libpcap/dist/missing/win_asprintf.c                 |    51 +
 external/bsd/libpcap/dist/missing/win_snprintf.c                 |    12 +
 external/bsd/libpcap/dist/pcap-filter.manmisc.in                 |    26 +-
 external/bsd/libpcap/dist/pcap-linktype.manmisc.in               |     2 +-
 external/bsd/libpcap/dist/pcap-netmap.c                          |     2 +-
 external/bsd/libpcap/dist/pcap-new.c                             |    85 +-
 external/bsd/libpcap/dist/pcap-npf.c                             |   236 +-
 external/bsd/libpcap/dist/pcap-rpcap.c                           |   628 ++--
 external/bsd/libpcap/dist/pcap-rpcap.h                           |     4 +-
 external/bsd/libpcap/dist/pcap-savefile.manfile.in               |     2 +-
 external/bsd/libpcap/dist/pcap-sita.html                         |     2 +-
 external/bsd/libpcap/dist/pcap-tc.c                              |    23 +-
 external/bsd/libpcap/dist/pcap-tstamp.manmisc.in                 |    19 +-
 external/bsd/libpcap/dist/pcap/compiler-tests.h                  |     2 +-
 external/bsd/libpcap/dist/pcap/dlt.h                             |    61 +-
 external/bsd/libpcap/dist/pcap/funcattrs.h                       |    14 +-
 external/bsd/libpcap/dist/pcap/pcap-inttypes.h                   |    11 +
 external/bsd/libpcap/dist/pcap/socket.h                          |    93 +
 external/bsd/libpcap/dist/pcap_compile.3pcap.in                  |    23 +-
 external/bsd/libpcap/dist/pcap_datalink.3pcap.in                 |     4 +-
 external/bsd/libpcap/dist/pcap_get_required_select_timeout.3pcap |    36 +-
 external/bsd/libpcap/dist/pcap_get_tstamp_precision.3pcap.in     |     4 +
 external/bsd/libpcap/dist/pcap_list_datalinks.3pcap.in           |    14 +-
 external/bsd/libpcap/dist/pcap_list_tstamp_types.3pcap.in        |    23 +-
 external/bsd/libpcap/dist/pcap_open_dead.3pcap.in                |    11 +-
 external/bsd/libpcap/dist/pcap_set_immediate_mode.3pcap.in       |    95 +
 external/bsd/libpcap/dist/pcap_set_protocol_linux.3pcap          |     7 +-
 external/bsd/libpcap/dist/pcap_set_tstamp_precision.3pcap.in     |    13 +-
 external/bsd/libpcap/dist/pcap_set_tstamp_type.3pcap.in          |    21 +-
 external/bsd/libpcap/dist/portability.h                          |    91 +-
 external/bsd/libpcap/dist/rpcap-protocol.h                       |   157 +-
 external/bsd/libpcap/dist/rpcapd/CMakeLists.txt                  |    47 +-
 external/bsd/libpcap/dist/rpcapd/Makefile.in                     |    19 +-
 external/bsd/libpcap/dist/rpcapd/daemon.c                        |  1151 +++++---
 external/bsd/libpcap/dist/rpcapd/daemon.h                        |     5 +-
 external/bsd/libpcap/dist/rpcapd/fileconf.c                      |   475 +++-
 external/bsd/libpcap/dist/rpcapd/log.c                           |   260 ++
 external/bsd/libpcap/dist/rpcapd/log.h                           |    24 +-
 external/bsd/libpcap/dist/rpcapd/rpcapd-config.manfile.in        |    78 +
 external/bsd/libpcap/dist/rpcapd/rpcapd.c                        |   286 +-
 external/bsd/libpcap/dist/rpcapd/rpcapd.inetd.conf               |     1 -
 external/bsd/libpcap/dist/rpcapd/rpcapd.manadmin.in              |    26 +-
 external/bsd/libpcap/dist/rpcapd/win32-svc.c                     |    29 +-
 external/bsd/libpcap/dist/sf-pcapng.c                            |   145 +-
 external/bsd/libpcap/dist/sf-pcapng.h                            |     2 +-
 external/bsd/libpcap/dist/sockutils.c                            |   328 +-
 external/bsd/libpcap/dist/sockutils.h                            |    76 +-
 69 files changed, 4864 insertions(+), 2337 deletions(-)

diffs (truncated from 11617 to 300 lines):

diff -r 1b0a968ad57f -r 507adbe6be14 external/bsd/libpcap/dist/CHANGES
--- a/external/bsd/libpcap/dist/CHANGES Tue Oct 01 11:49:12 2019 +0000
+++ b/external/bsd/libpcap/dist/CHANGES Tue Oct 01 16:00:25 2019 +0000
@@ -1,3 +1,75 @@
+Sunday, July 22, 2018
+  Summary for 1.9.1 libpcap release
+    Mention pcap_get_required_select_timeout() in the main pcap man page
+    Fix pcap-usb-linux.c build on systems with musl
+    Fix assorted man page and other documentation issues
+    Plug assorted memory leaks
+    Documentation changes to use https:
+    Changes to how time stamp calculations are done
+    Lots of tweaks to make newer compilers happier and warning-free and
+        to fix instances of C undefined behavior
+    Warn if AC_PROG_CC_C99 can't enable C99 support
+    Rename pcap_set_protocol() to  pcap_set_protocol_linux().
+    Align pcap_t private data on an 8-byte boundary.
+    Fix various error messages
+    Use 64-bit clean API in dag_findalldevs()
+    Fix cleaning up after some errors
+    Work around some ethtool ioctl bugs in newer Linux kernels (GitHub
+        issue #689)
+    Add backwards compatibility sections to some man pages (GitHub issue
+        #745)
+    Fix autotool configuration on AIX and macOS
+    Don't export bpf_filter_with_aux_data() or struct bpf_aux_data;
+        they're internal-only and subject to change
+    Fix pcapng block size checking
+    On macOS, don't build rpcapd or test programs any fatter than they
+        need to be
+    Fix reading of capture statistics for Linux USB
+    Fix packet size values for Linux USB packets (GitHub issue #808)
+    Check only VID in VLAN test in filterss (GitHub issue #461)
+    Fix pcap_list_datalinks on 802.11 devices on macOS
+    Fix overflows with very large snapshot length in pcap file
+    Improve parsing of rpcapd configuration file (GitHub issue #767)
+    Handle systems without strlcpy() or strlcat() better
+    Fix crashes and other errors with invalid filter expressions
+    Fix use of uninitialized file descriptor in remote capture
+    Fix some CMake issues
+    Fix some divide-by-zero issues with the filter compiler
+    Work around a GNU libc bug in pcap_nametonetaddr()
+    Add support for DLT_LINUX_SLL2
+    Fix handling of the packet-count argument for Myricom SNF devices
+    Fix --disable-rdma in configure script (GitHub issue #782)
+    Fix compilation of TurboCap support (GitHub issue #764)
+    Constify first argument to pcap_findalldevs_ex()
+    Fix a number of issues when running rpcapd as an inetd-style daemon
+    Fix CMake issues with D-Bus libraries
+    In rpcapd, clean up termination of a capture session
+    Redo remote capture protocol negotiation
+    In rpcapd, report the same error for "invalid user name" and
+        "invalid password", to make brute-forcing harder
+    For remote captures, add an error code for "the server requires TLS"
+    Fix pcap_dump_fopen() on Windows to avoid clashes between
+        {Win,N}Pcap and application C runtimes
+    Fix exporting of functions from Windows DLLs (GitHub issue #810)
+    Fix building as part of Npcap
+    Allow rpcapd to rebind more rapidly
+    Fix building shared libpcap library on midipix (midipix.org)
+    Fix hack to detect UTF-16LE adapter names on Windows not to go past
+        the end of the string
+    Fix handling of "wireless WAN" (mobile phone network modems) on
+        Windows with WinPcap/Npcap (GitHub issue #824)
+    Have pcap_dump_open_append() create the dump file if it doesn't
+        exists (GitHub issue #247)
+    Fix the maxmum snapshot length for DLT_USBPCAP
+    Use -fPIC when building for 64-bit SPARC on Linux (GitHub issue #837)
+    Fix CMake 64-bit library installation directory on some Linux
+        distributions
+    Boost the TPACKET_V3 timeout to the maximum if a timeout of 0 was
+        specified
+    Five CVE-2019-15161, CVE-2019-15162, CVE-2019-15163, CVE-2019-15164, CVE-2019-15165
+    Fixes for CVE-2018-16301, errors in pcapng reading.
+    PCAPNG reader applies some sanity checks before doing malloc().
+
 Sunday, June 24, 2018, by mcr%sandelman.ca@localhost
   Summary for 1.9.0 libpcap release
     Added testing system to libpcap, independent of tcpdump
diff -r 1b0a968ad57f -r 507adbe6be14 external/bsd/libpcap/dist/CMakeLists.txt
--- a/external/bsd/libpcap/dist/CMakeLists.txt  Tue Oct 01 11:49:12 2019 +0000
+++ b/external/bsd/libpcap/dist/CMakeLists.txt  Tue Oct 01 16:00:25 2019 +0000
@@ -9,7 +9,7 @@
     cmake_policy(SET CMP0042 OLD)
 endif()
 
-set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules)
+set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules)
 
 project(pcap)
 
@@ -136,83 +136,6 @@
 endif()
 
 #
-# By default, build universal with the appropriate set of architectures
-# for the OS on which we're doing the build.
-#
-if(APPLE AND "${CMAKE_OSX_ARCHITECTURES}" STREQUAL "")
-    #
-    # Get the major version of Darwin.
-    #
-    string(REGEX MATCH "^([0-9]+)" SYSTEM_VERSION_MAJOR "${CMAKE_SYSTEM_VERSION}")
-
-    if(SYSTEM_VERSION_MAJOR LESS 8)
-        #
-        # Pre-Tiger.  Build only for 32-bit PowerPC.
-        #
-        set(CMAKE_OSX_ARCHITECTURES "ppc")
-    elseif(SYSTEM_VERSION_MAJOR EQUAL 8)
-        #
-        # Tiger.  Is this prior to, or with, Intel support?
-        #
-        # Get the minor version of Darwin.
-        #
-        string(REPLACE "${SYSTEM_VERSION_MAJOR}." "" SYSTEM_MINOR_AND_PATCH_VERSION ${CMAKE_SYSTEM_VERSION})
-        string(REGEX MATCH "^([0-9]+)" SYSTEM_VERSION_MINOR "${SYSTEM_MINOR_AND_PATCH_VERSION}")
-        if(SYSTEM_VERSION_MINOR LESS 4)
-            #
-            # Prior to Intel support.  Build for 32-bit
-            # PowerPC and 64-bit PowerPC, with 32-bit PowerPC
-            # first.  (I'm guessing that's what Apple does.)
-            #
-            set(CMAKE_OSX_ARCHITECTURES "ppc;ppc64")
-        elseif(SYSTEM_VERSION_MINOR LESS 7)
-            #
-            # With Intel support but prior to x86-64 support.
-            # Build for 32-bit PowerPC, 64-bit PowerPC, and x86,
-            # with 32-bit PowerPC first.
-            # (I'm guessing that's what Apple does.)
-            #
-            set(CMAKE_OSX_ARCHITECTURES "ppc;ppc64;i386")
-        else()
-            #
-            # With Intel support including x86-64 support.
-            # Build for 32-bit PowerPC, 64-bit PowerPC, x86,
-            # and x86-64, with 32-bit PowerPC first.
-            # (I'm guessing that's what Apple does.)
-            #
-            set(CMAKE_OSX_ARCHITECTURES "ppc;ppc64;i386;x86_64")
-        endif()
-    elseif(SYSTEM_VERSION_MAJOR EQUAL 9)
-        #
-        # Leopard.  Build for 32-bit PowerPC, 64-bit
-        # PowerPC, x86, and x86-64, with 32-bit PowerPC
-        # first.  (That's what Apple does.)
-        #
-        set(CMAKE_OSX_ARCHITECTURES "ppc;ppc64;i386;x86_64")
-    elseif(SYSTEM_VERSION_MAJOR EQUAL 10)
-        #
-        # Snow Leopard.  Build for x86-64, x86, and
-        # 32-bit PowerPC, with x86-64 first.  (That's
-        # what Apple does, even though Snow Leopard
-        # doesn't run on PPC, so PPC libpcap runs under
-        # Rosetta, and Rosetta doesn't support BPF
-        # ioctls, so PPC programs can't do live
-        # captures.)
-        #
-        set(CMAKE_OSX_ARCHITECTURES "x86_64;i386;ppc")
-    else()
-        #
-        # Post-Snow Leopard.  Build for x86-64 and
-        # x86, with x86-64 first.  (That's probably what
-        # Apple does, given that Rosetta is gone.)
-        # XXX - update if and when Apple drops support
-        # for 32-bit x86 code.
-        #
-        set(CMAKE_OSX_ARCHITECTURES "x86_64;i386")
-    endif()
-endif()
-
-#
 # Additional capture modules.
 #
 option(DISABLE_USB "Disable USB sniffing support" OFF)
@@ -233,7 +156,7 @@
 option(DISABLE_DAG "Disable Endace DAG card support" OFF)
 
 option(DISABLE_SEPTEL "Disable Septel card support" OFF)
-set(SEPTEL_ROOT "${CMAKE_SOURCE_DIR}/../septel" CACHE PATH "Path to directory with include and lib subdirectories for Septel API")
+set(SEPTEL_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/../septel" CACHE PATH "Path to directory with include and lib subdirectories for Septel API")
 
 option(DISABLE_SNF "Disable Myricom SNF support" OFF)
 
@@ -289,6 +212,7 @@
 
 include(CheckFunctionExists)
 include(CMakePushCheckState)
+include(CheckSymbolExists)
 
 if(WIN32)
 
@@ -310,6 +234,14 @@
         cmake_pop_check_state()
     endif(PACKET_FOUND)
 
+    message(STATUS "checking for Npcap's version.h")
+    check_symbol_exists(WINPCAP_PRODUCT_NAME "../../version.h" HAVE_VERSION_H)
+    if(HAVE_VERSION_H)
+           message(STATUS "HAVE version.h")
+    else(HAVE_VERSION_H)
+           message(STATUS "MISSING version.h")
+    endif(HAVE_VERSION_H)
+
 endif(WIN32)
 
 if(MSVC)
@@ -344,6 +276,11 @@
 include(CheckTypeSize)
 
 #
+# Tests are a bit expensive with Visual Studio on Windows, so, on
+# Windows, we skip tests for UN*X-only headers and functions.
+#
+
+#
 # Header files.
 #
 check_include_file(inttypes.h HAVE_INTTYPES_H)
@@ -395,12 +332,44 @@
 #
 check_function_exists(strerror HAVE_STRERROR)
 check_function_exists(strerror_r HAVE_STRERROR_R)
-check_function_exists(strerror_s HAVE_STRERROR_S)
+if(HAVE_STRERROR_R)
+    #
+    # We have strerror_r; if we define _GNU_SOURCE, is it a
+    # POSIX-compliant strerror_r() or a GNU strerror_r()?
+    #
+    check_c_source_compiles(
+"#define _GNU_SOURCE
+#include <string.h>
+
+/* Define it GNU-style; that will cause an error if it's not GNU-style */
+extern char *strerror_r(int, char *, size_t);
+
+int
+main(void)
+{
+       return 0;
+}
+"
+            HAVE_GNU_STRERROR_R)
+    if(NOT HAVE_GNU_STRERROR_R)
+        set(HAVE_POSIX_STRERROR_R YES)
+    endif(NOT HAVE_GNU_STRERROR_R)
+else(HAVE_STRERROR_R)
+    #
+    # We don't have strerror_r; do we have strerror_s?
+    #
+    check_function_exists(strerror_s HAVE_STRERROR_S)
+endif(HAVE_STRERROR_R)
 check_function_exists(strlcpy HAVE_STRLCPY)
 check_function_exists(strlcat HAVE_STRLCAT)
 check_function_exists(snprintf HAVE_SNPRINTF)
 check_function_exists(vsnprintf HAVE_VSNPRINTF)
+check_function_exists(asprintf HAVE_ASPRINTF)
+check_function_exists(vasprintf HAVE_VASPRINTF)
 check_function_exists(strtok_r HAVE_STRTOK_R)
+if(NOT WIN32)
+    check_function_exists(vsyslog HAVE_VSYSLOG)
+endif()
 
 #
 # These tests are for network applications that need socket functions
@@ -429,7 +398,6 @@
 #
 set(PCAP_LINK_LIBRARIES "")
 include(CheckLibraryExists)
-include(CheckSymbolExists)
 if(WIN32)
     #
     # We need winsock2.h and ws2tcpip.h.
@@ -865,11 +833,61 @@
 )
 
 if(WIN32)
-    set(PROJECT_SOURCE_LIST_C ${PROJECT_SOURCE_LIST_C} missing/win_snprintf.c)
+    #
+    # For now, we assume we don't have snprintf() or that it's not one
+    # that behaves enough like C99's snprintf() for our purposes (i.e.,
+    # it doesn't null-terminate the string if it truncates it to fit in
+    # the buffer), so we have to provide our own (a wrapper around
+    # _snprintf() that null-terminates the buffer).
+    #
+    # We also assume we don't have asprintf(), and provide an implementation
+    # that uses _vscprintf() to determine how big the string needs to be.
+    #
+    set(PROJECT_SOURCE_LIST_C ${PROJECT_SOURCE_LIST_C}
+        missing/win_snprintf.c missing/win_asprintf.c)
 else()
+    #
+    # Either:
+    #
+    #  we have snprintf() and vsnprintf(), and have asprintf() and
+    #  vasprintf();
+    #
+    #  we have snprintf() and vsnprintf(), but don't have asprintf()
+    #  or vasprintf();
+    #



Home | Main Index | Thread Index | Old Index