commit d82a3242370ca380668ec1a7a2d3ce6c2dd9b0a1 Author: MSVSphere Packaging Team Date: Fri Oct 25 16:27:39 2024 +0300 import libnet-1.3-6.el10 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0993df6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/libnet-1.3.tar.gz diff --git a/.libnet.metadata b/.libnet.metadata new file mode 100644 index 0000000..6194a78 --- /dev/null +++ b/.libnet.metadata @@ -0,0 +1 @@ +0afd4169eb6be42f5e2a805b5370e1f881d45969 SOURCES/libnet-1.3.tar.gz diff --git a/SOURCES/170.patch b/SOURCES/170.patch new file mode 100644 index 0000000..c539ea3 --- /dev/null +++ b/SOURCES/170.patch @@ -0,0 +1,100 @@ +From 79e4b9df5bfa5e5fbaa9f3ad78ff677bf165611f Mon Sep 17 00:00:00 2001 +From: Adrian Reber +Date: Wed, 7 Aug 2024 11:06:19 +0200 +Subject: [PATCH 1/2] libnet_if_addr.c: fix 'Using uninitialized value "rc".' + +This fixes static code analysis report: + + 1. libnet-1.3/src/libnet_if_addr.c:551:5: var_decl: Declaring variable "rc" without initializer. + 8. libnet-1.3/src/libnet_if_addr.c:626:5: uninit_use: Using uninitialized value "rc". + # 624| } + # 625| + # 626|-> return rc; + # 627| } + # 628| + +The code was jumping to the 'end' label without setting rc to anything. +Doing 'return rc' will indeed return an uninitialized value for some +cases. + +This commit removed the 'bad' label and in an error case always jumps to +'end' with rc initialized to -1. + +Signed-off-by: Adrian Reber +--- + src/libnet_if_addr.c | 8 +++----- + 1 file changed, 3 insertions(+), 5 deletions(-) + +diff --git a/src/libnet_if_addr.c b/src/libnet_if_addr.c +index e0e8b6d4..ab8530c7 100644 +--- a/src/libnet_if_addr.c ++++ b/src/libnet_if_addr.c +@@ -548,7 +548,8 @@ libnet_select_device(libnet_t *l) + { + struct libnet_ifaddr_list *address_list = NULL, *al; + uint32_t addr; +- int c, i, rc; ++ int rc = -1; ++ int c, i; + + if (l == NULL) + { +@@ -600,7 +601,7 @@ libnet_select_device(libnet_t *l) + if (i <= 0) + { + snprintf(l->err_buf, LIBNET_ERRBUF_SIZE, "%s(): can't find interface for IP %s", __func__, l->device); +- goto bad; ++ goto end; + } + } + else +@@ -610,9 +611,6 @@ libnet_select_device(libnet_t *l) + + good: + rc = 1; +- goto end; +-bad: +- rc = -1; + end: + if (address_list) { + for (i = 0; i < c; i++) + +From ec512f5ea21deabc9631efffb0acfb3e345107bc Mon Sep 17 00:00:00 2001 +From: Adrian Reber +Date: Wed, 7 Aug 2024 11:15:23 +0200 +Subject: [PATCH 2/2] libnet_build_udld.c: fix 'Using uninitialized value "p" + when calling "libnet_pblock_delete"' + +Static code analysis reported: + + 1. libnet-1.3/src/libnet_build_udld.c:11:5: var_decl: Declaring variable "p" without initializer. + 4. libnet-1.3/src/libnet_build_udld.c:119:5: uninit_use_in_call: Using uninitialized value "p" when calling "libnet_pblock_delete". + # 117| return libnet_pblock_update(l, p, h, pblock_type); + # 118| bad: + # 119|-> libnet_pblock_delete(l, p); + # 120| return (-1); + # 121| } + +The function libnet_pblock_delete() checks if p is not NULL, but it is +called before 'p' is uninitialized and it might point to some random +location. Setting it to NULL will skip running libnet_pblock_delete() +cleanup code on a random memory address. + +Signed-off-by: Adrian Reber +--- + src/libnet_build_udld.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/libnet_build_udld.c b/src/libnet_build_udld.c +index 731cffe8..315e6ac5 100644 +--- a/src/libnet_build_udld.c ++++ b/src/libnet_build_udld.c +@@ -8,7 +8,7 @@ const uint8_t value_s, libnet_t * l, libnet_ptag_t ptag) + { + struct libnet_udld_hdr hdr; + uint32_t n, h; +- libnet_pblock_t *p; ++ libnet_pblock_t *p = NULL; + + hdr.tlv__type = tlv_type; + hdr.tlv__length = LIBNET_UDLD_TLV_HDR_SIZE + value_s; diff --git a/SOURCES/libnet-config.patch b/SOURCES/libnet-config.patch new file mode 100644 index 0000000..a8a6bb8 --- /dev/null +++ b/SOURCES/libnet-config.patch @@ -0,0 +1,16 @@ +--- libnet-1.2/libnet-config.in.orig 2021-04-08 14:13:20.095564421 +0200 ++++ libnet-1.2/libnet-config.in 2021-04-08 14:13:42.038730961 +0200 +@@ -12,12 +12,11 @@ + + prefix=@prefix@ + exec_prefix=@exec_prefix@ +-libdir=@libdir@ + includedir=@includedir@ + + libnet_defines="@PKG_CONFIG_DEFINES@" + libnet_cflags="-I${includedir} @PKG_CONFIG_CFLAGS@" +-libnet_libs="-L${libdir} @PKG_CONFIG_LIBS@ -lnet" ++libnet_libs="@PKG_CONFIG_LIBS@ -lnet" + + usage() + { diff --git a/SPECS/libnet.spec b/SPECS/libnet.spec new file mode 100644 index 0000000..5ead86e --- /dev/null +++ b/SPECS/libnet.spec @@ -0,0 +1,285 @@ +Summary: C library for portable packet creation and injection +Name: libnet +Version: 1.3 +Release: 6%{?dist} +License: BSD-2-Clause AND BSD-3-Clause +URL: https://github.com/libnet/libnet +Source0: https://github.com/libnet/libnet/releases/download/v%{version}/%{name}-%{version}.tar.gz +Patch0: libnet-config.patch +Patch1: https://github.com/libnet/libnet/pull/170.patch +BuildRequires: gcc +BuildRequires: make +BuildRequires: %{_bindir}/pod2man + +%description +Libnet is an API to help with the construction and handling of network +packets. It provides a portable framework for low-level network packet +writing and handling (use libnet in conjunction with libpcap and you can +write some really cool stuff). Libnet includes packet creation at the IP +layer and at the link layer as well as a host of supplementary and +complementary functionality. + +%package devel +Summary: Development files for the libnet library +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: pkgconfig + +%description devel +The libnet-devel package includes header files and libraries necessary +for developing programs which use the libnet library. Libnet is very +handy with which to write network tools and network test code. See the +man page and sample test code for more detailed information. + +%if 0%{!?_without_doc:1} +%package doc +Summary: Documentation files for the libnet library +BuildArch: noarch +BuildRequires: doxygen +BuildRequires: graphviz + +%description doc +Libnet is an API to help with the construction and handling of network +packets. It provides a portable framework for low-level network packet +writing and handling. This package contains the API documentation for +developing applications that use libnet. +%endif + +%prep +%setup -q +%patch -P 0 -p1 +%patch -P 1 -p1 +# Avoid library soname bump (https://github.com/libnet/libnet/issues/115) +sed -e 's/-version-info 9:0:0/-version-info 9:0:8/' -i src/Makefile.{am,in} + +%build +%configure +%make_build + +%install +%make_install INSTALL='install -p' + +# Don't install any libtool .la files +rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}.{a,la} + +# Clean up for later usage in documentation +rm -rf $RPM_BUILD_ROOT%{_defaultdocdir} + +# Prepare samples for usage in documentation +rm -rf sample/{Makefile*,win32} +for file in sample/*.[hc]; do + sed \ + -e 's@#include "../include/libnet.h"@#include @' \ + -e 's@#include "../include/config.h"@#include @' \ + $file > $file.new + touch -c -r $file{,.new} + mv -f $file{.new,} +done + +%ldconfig_scriptlets + +%files +%license LICENSE +%doc README.md ChangeLog.md +%{_libdir}/%{name}.so.* + +%files devel +%doc doc/MIGRATION.md doc/RAWSOCKET.md sample/ +%{_bindir}/%{name}-config +%{_libdir}/%{name}.so +%{_libdir}/pkgconfig/%{name}.pc +%{_includedir}/%{name}.h +%{_includedir}/%{name}/ +%{_mandir}/man1/%{name}*.1* +%{_mandir}/man3/%{name}*.3* + +%if 0%{!?_without_doc:1} +%files doc +%doc doc/html/ +%endif + +%changelog +* Wed Aug 07 2024 Adrian Reber - 1.3-6 +- applied patch to fix static analysis errors + https://github.com/libnet/libnet/pull/170 + +* Tue Aug 06 2024 Adrian Reber - 1.3-5 +- copy gating.yaml from c9s + +* Mon Jun 24 2024 Troy Dawson - 1.3-4 +- Bump release for June 2024 mass rebuild + +* Thu Jan 25 2024 Fedora Release Engineering - 1.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 1.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Tue Oct 03 2023 Gwyn Ciesla - 1.3-1 +- 1.3 + +* Thu Jul 20 2023 Fedora Release Engineering - 1.2-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Fri Jun 16 2023 Adrian Reber - 1.2-8 +- migrated to SPDX license + +* Thu Jan 19 2023 Fedora Release Engineering - 1.2-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Jul 21 2022 Fedora Release Engineering - 1.2-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Thu Jan 20 2022 Fedora Release Engineering - 1.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Thu Jul 22 2021 Fedora Release Engineering - 1.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Thu Apr 08 2021 Adrian Reber - 1.2-3 +- Fix file conflicts with libnet-devel + +* Tue Jan 26 2021 Fedora Release Engineering - 1.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Sat Jan 02 2021 Robert Scheck 1.2-1 +- Upgrade to 1.2 (#1912031) + +* Tue Jul 28 2020 Fedora Release Engineering - 1.1.6-20 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jan 29 2020 Fedora Release Engineering - 1.1.6-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jul 25 2019 Fedora Release Engineering - 1.1.6-18 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri Feb 01 2019 Fedora Release Engineering - 1.1.6-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Jul 13 2018 Fedora Release Engineering - 1.1.6-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Feb 07 2018 Fedora Release Engineering - 1.1.6-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Aug 03 2017 Fedora Release Engineering - 1.1.6-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 1.1.6-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Feb 10 2017 Fedora Release Engineering - 1.1.6-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Feb 04 2016 Fedora Release Engineering - 1.1.6-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jun 17 2015 Fedora Release Engineering - 1.1.6-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sun Aug 17 2014 Fedora Release Engineering - 1.1.6-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Jun 07 2014 Fedora Release Engineering - 1.1.6-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Fri Dec 20 2013 Robert Scheck 1.1.6-7 +- Run autoreconf to recognize aarch64 (#925813) +- Conditionalized usage of %%{_lib} vs %%{_libdir} for RHEL < 7 +- Tight run-time dependencies between sub-packages via %%{?_isa} + +* Sat Aug 03 2013 Fedora Release Engineering - 1.1.6-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Thu Feb 14 2013 Fedora Release Engineering - 1.1.6-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Thu Jul 19 2012 Fedora Release Engineering - 1.1.6-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Mon Apr 02 2012 Jon Ciesla - 1.1.6-3 +- Removed redundant leading slashes. + +* Mon Apr 02 2012 Jon Ciesla - 1.1.6-2 +- Move from lib to libdir. + +* Fri Mar 30 2012 Jon Ciesla - 1.1.6-1 +- Upgrade to 1.1.6, BZ 808394. + +* Fri Jan 13 2012 Fedora Release Engineering - 1.1.5-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Tue Feb 08 2011 Fedora Release Engineering - 1.1.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Tue Dec 28 2010 Robert Scheck 1.1.5-1 +- Upgrade to 1.1.5 + +* Fri Jul 09 2010 Robert Scheck 1.1.4-4 +- Added patch for capability support rather UID check (#589770) + +* Fri Aug 21 2009 Robert Scheck 1.1.4-3 +- Move libnet.so.* to /lib[64] to avoid static linking (#518150) + +* Fri Jul 24 2009 Fedora Release Engineering - 1.1.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Thu Jun 11 2009 Robert Scheck 1.1.4-1 +- Upgrade to 1.1.4 + +* Sat Jun 06 2009 Robert Scheck 1.1.3-2 +- Added upstream patch to solve HAVE_CONFIG_H (#501633, #502400) + +* Sat May 16 2009 Robert Scheck 1.1.3-1 +- Upgrade to 1.1.3 + +* Sun Apr 19 2009 Robert Scheck 1.1.2.1-14 +- Enabled a shared library and made lots of spec file cleanups + +* Mon Feb 23 2009 Robert Scheck 1.1.2.1-13 +- Rebuild against gcc 4.4 and rpm 4.6 + +* Tue Feb 19 2008 Fedora Release Engineering - 1.1.2.1-12 +- Autorebuild for GCC 4.3 + +* Wed Aug 1 2007 Patrice Dumas 1.1.2.1-11 +- build with -fPIC (#250296) + +* Fri Jan 12 2007 Patrice Dumas 1.1.2.1-10 +- add debian patch to correct bad checksums + +* Tue Aug 29 2006 Patrice Dumas 1.1.2.1-9 +- rebuild for FC6 + +* Fri Feb 17 2006 Patrice Dumas 1.1.2.1-8 +- rebuild for fc5 + +* Thu Dec 22 2005 Patrice Dumas 1.1.2.1-7 +- rebuild + +* Mon Sep 12 2005 Patrice Dumas 1.1.2.1-6 +- bump release and add dist tag + +* Tue Aug 30 2005 Paul Howarth 1.1.2.1-5 +- spec file cleanup + +* Fri Aug 26 2005 Patrice Dumas 1.1.2.1-4 +- use pushd and popd (from Oliver Falk) + +* Mon Aug 22 2005 Patrice Dumas 1.1.2.1-3 +- Correct dos end of lines +- add in devel: Provides: %%{name} = %%{version}-%%{release} + +* Fri Aug 12 2005 Patrice Dumas 1.1.2.1-2 +- put everything in a devel subpackage +- add smpflags +- clean in sample + +* Fri Aug 12 2005 Patrice Dumas 1.1.2.1-1 +- rebuild changing only name + +* Wed Jun 02 2004 Marcin Garski 1.1.2.1-2.fc2 +- Rebuild for Fedora Core 2 + +* Sat May 08 2004 Marcin Garski 1.1.2.1-1 +- Initial specfile