diff --git a/.gitignore b/.gitignore index c7eb78c..7392f9b 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/libpcap-1.9.0.tar.gz +SOURCES/libpcap-1.9.1.tar.gz diff --git a/.libpcap.metadata b/.libpcap.metadata index 1cb7de6..ac2b3df 100644 --- a/.libpcap.metadata +++ b/.libpcap.metadata @@ -1 +1 @@ -c565f591c9a921fb5938cc16407c321c1ca8b9e8 SOURCES/libpcap-1.9.0.tar.gz +04d6e619defad5bb17af15f6d2304e79b649786c SOURCES/libpcap-1.9.1.tar.gz diff --git a/SOURCES/0004-invalid-IPv4-address.patch b/SOURCES/0004-invalid-IPv4-address.patch new file mode 100644 index 0000000..2712b1a --- /dev/null +++ b/SOURCES/0004-invalid-IPv4-address.patch @@ -0,0 +1,66 @@ +From 907070918d5e81a515315b395f334e52589fe0fb Mon Sep 17 00:00:00 2001 +From: Guy Harris +Date: Wed, 18 Dec 2019 15:06:53 -0800 +Subject: [PATCH] Check for invalid IPv4 addresses. + +This should fix GitHub issue #893. +--- + gencode.c | 9 ++++++++- + nametoaddr.c | 9 ++++++++- + 2 files changed, 16 insertions(+), 2 deletions(-) + +diff --git a/gencode.c b/gencode.c +index bdc35e646..040a55315 100644 +--- a/gencode.c ++++ b/gencode.c +@@ -6947,11 +6947,15 @@ gen_mcode(compiler_state_t *cstate, const char *s1, const char *s2, + return (NULL); + + nlen = __pcap_atoin(s1, &n); ++ if (nlen < 0) ++ bpf_error(cstate, "invalid IPv4 address '%s'", s1); + /* Promote short ipaddr */ + n <<= 32 - nlen; + + if (s2 != NULL) { + mlen = __pcap_atoin(s2, &m); ++ if (mlen < 0) ++ bpf_error(cstate, "invalid IPv4 address '%s'", s2); + /* Promote short ipaddr */ + m <<= 32 - mlen; + if ((n & ~m) != 0) +@@ -7009,8 +7013,11 @@ gen_ncode(compiler_state_t *cstate, const char *s, bpf_u_int32 v, struct qual q) + vlen = __pcap_atodn(s, &v); + if (vlen == 0) + bpf_error(cstate, "malformed decnet address '%s'", s); +- } else ++ } else { + vlen = __pcap_atoin(s, &v); ++ if (vlen < 0) ++ bpf_error(cstate, "invalid IPv4 address '%s'", s); ++ } + + switch (q.addr) { + +diff --git a/nametoaddr.c b/nametoaddr.c +index 53070a285..13bf4c683 100644 +--- a/nametoaddr.c ++++ b/nametoaddr.c +@@ -674,8 +674,15 @@ __pcap_atoin(const char *s, bpf_u_int32 *addr) + len = 0; + for (;;) { + n = 0; +- while (*s && *s != '.') ++ while (*s && *s != '.') { ++ if (n > 25) { ++ /* The result will be > 255 */ ++ return -1; ++ } + n = n * 10 + *s++ - '0'; ++ } ++ if (n > 255) ++ return -1; + *addr <<= 8; + *addr |= n & 0xff; + len += 8; + diff --git a/SPECS/libpcap.spec b/SPECS/libpcap.spec index e0aee63..34160a4 100644 --- a/SPECS/libpcap.spec +++ b/SPECS/libpcap.spec @@ -1,7 +1,7 @@ Name: libpcap Epoch: 14 -Version: 1.9.0 -Release: 3%{?dist} +Version: 1.9.1 +Release: 4%{?dist} Summary: A system-independent interface for user-level packet capture License: BSD with advertising URL: http://www.tcpdump.org @@ -17,6 +17,7 @@ Source: http://www.tcpdump.org/release/%{name}-%{version}.tar.gz Patch0001: 0001-man-tcpdump-and-tcpslice-have-manpages-in-man8.patch Patch0002: 0002-pcap-config-mitigate-multilib-conflict.patch Patch0003: 0003-pcap-linux-apparently-ctc-interfaces-on-s390-has-eth.patch +Patch0004: 0004-invalid-IPv4-address.patch %description Libpcap provides a portable framework for low-level network @@ -84,6 +85,21 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libpcap.a %{_mandir}/man5/pcap*.5* %changelog +* Fri May 22 2020 Michal Ruprich - 14:1.9.1-4 +- Related: #1806422 - Building libpcap to side-tag for tcpdump + +* Fri May 22 2020 Michal Ruprich - 14:1.9.1-3 +- Related: #1743650 - reverting rdma changes due to unresolved dependency loop + +* Wed May 06 2020 Michal Ruprich - 14:1.9.1-2 +- Related: #1806422 - Building libpcap to side-tag for tcpdump + +* Thu Apr 09 2020 Michal Ruprich - 14:1.9.1-1 +- Resolves: #1806422 - rebase libpcap to version 1.9.1 +- Resolves: #1743650 - [RFE] enable inbox support for sniffing offloaded (RDMA) traffic with tcpdump +- Resolves: #1785330 - Invalid IPv4 addresses are accepted without reporting even a warning +- Resolves: #1792208 - Resource exhaustion while PHB header length validation + * Wed Jul 03 2019 Michal Ruprich - 14:1.9.0-3 - Resolves: #1708397 - Move libpcap.pc to libpcap-devel - Removing obsolete group tag