wireshark: Update to a supported version 4.0.x

Drop CVE patch as its included.
Drop 0003-bison-Remove-line-directives.patch as file is not longer there.
refactor 0001-wireshark-src-improve-reproducibility.patch
LIC_FILES_CHKSUM changed do to re-structuring.
Remove TMPDIR found in some files.
Remove c-ares PACKAGECONFIG as its a required pkg

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Armin Kuster
2023-06-06 12:54:28 -04:00
committed by Khem Raj
parent 0b06cbd97f
commit 4bdd8014d5
5 changed files with 94 additions and 239 deletions
@@ -0,0 +1,66 @@
From b4f29807225cf3744c2f4f971902fbdd7486fc19 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20Valverde?= <j@v6e.pt>
Date: Fri, 26 May 2023 13:29:23 +0100
Subject: [PATCH] CMake: Fix a try_run() test when cross-compiling
Upstream-Status: Backport
Signed-off-by: Armin Kuster <akuster808@gmail.com>
---
ConfigureChecks.cmake | 36 ++++++++++++++++++++----------------
1 file changed, 20 insertions(+), 16 deletions(-)
diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake
index dd8268e077..d8bca54115 100644
--- a/ConfigureChecks.cmake
+++ b/ConfigureChecks.cmake
@@ -122,26 +122,30 @@ check_type_size("ssize_t" SSIZE_T)
# Check if the libc vsnprintf() conforms to C99. If this fails we may
# need to fall-back on GLib I/O.
#
-check_c_source_runs("
- #include <stdio.h>
- int main(void)
- {
- /* Check that snprintf() and vsnprintf() don't return
- * -1 if the buffer is too small. C99 says this value
- * is the length that would be written not including
- * the nul byte. */
- char buf[3];
- return snprintf(buf, sizeof(buf), \"%s\", \"ABCDEF\") > 0 ? 0 : 1;
- }"
- HAVE_C99_VSNPRINTF
-)
-if (NOT HAVE_C99_VSNPRINTF)
- message(FATAL_ERROR
+# If cross-compiling we can't check so just assume this requirement is met.
+#
+if(NOT CMAKE_CROSSCOMPILING)
+ check_c_source_runs("
+ #include <stdio.h>
+ int main(void)
+ {
+ /* Check that snprintf() and vsnprintf() don't return
+ * -1 if the buffer is too small. C99 says this value
+ * is the length that would be written not including
+ * the nul byte. */
+ char buf[3];
+ return snprintf(buf, sizeof(buf), \"%s\", \"ABCDEF\") > 0 ? 0 : 1;
+ }"
+ HAVE_C99_VSNPRINTF
+ )
+ if (NOT HAVE_C99_VSNPRINTF)
+ message(FATAL_ERROR
"Building Wireshark requires a C99 compliant vsnprintf() and this \
target does not meet that requirement. Compiling for ${CMAKE_SYSTEM} \
using ${CMAKE_C_COMPILER_ID}. Please report this issue to the Wireshark \
developers at wireshark-dev@wireshark.org."
- )
+ )
+ endif()
endif()
#
--
2.25.1
@@ -13,24 +13,11 @@ Signed-off-by: Oleksiy Obitotskyy <oobitots@cisco.com>
tools/ncp2222.py | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/make-plugin-reg.py b/tools/make-plugin-reg.py
index 66b4656..c52b3fc 100755
--- a/tools/make-plugin-reg.py
+++ b/tools/make-plugin-reg.py
@@ -28,7 +28,7 @@ preamble = """\
*
* Generated automatically from %s.
*/
-""" % (sys.argv[0])
+""" % (os.path.basename(sys.argv[0]))
# Create the proper list of filenames
filenames = []
diff --git a/tools/ncp2222.py b/tools/ncp2222.py
index 1dea4ec..dc376e3 100755
--- a/tools/ncp2222.py
+++ b/tools/ncp2222.py
@@ -5858,7 +5858,7 @@ def produce_code():
Index: wireshark-4.0.6/tools/ncp2222.py
===================================================================
--- wireshark-4.0.6.orig/tools/ncp2222.py
+++ wireshark-4.0.6/tools/ncp2222.py
@@ -5891,7 +5891,7 @@ def produce_code():
print("/*")
print(" * Do not modify this file. Changes will be overwritten.")
@@ -39,6 +26,3 @@ index 1dea4ec..dc376e3 100755
print(" */\n")
print("""
--
2.26.2.Cisco
@@ -1,59 +0,0 @@
From 42abf1d299fed8e00a189f6f9c55fb344e5bb775 Mon Sep 17 00:00:00 2001
From: Oleksiy Obitotskyy <oobitots@cisco.com>
Date: Wed, 27 Jan 2021 04:01:34 -0800
Subject: [PATCH] bison: Remove #line directives
Append --no-lines option to bison to not
generate #line directives with absolute file path.
Upstream-Status: Pending
Signed-off-by: Oleksiy Obitotskyy <oobitots@cisco.com>
---
cmake/modules/FindYACC.cmake | 31 ++++++++++++++++++++++---------
1 file changed, 22 insertions(+), 9 deletions(-)
diff --git a/cmake/modules/FindYACC.cmake b/cmake/modules/FindYACC.cmake
index c96f87b..54a73cb 100644
--- a/cmake/modules/FindYACC.cmake
+++ b/cmake/modules/FindYACC.cmake
@@ -29,15 +29,28 @@ MACRO(ADD_YACC_FILES _source _generated)
SET(_out ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.c)
- ADD_CUSTOM_COMMAND(
- OUTPUT ${_out}
- COMMAND ${YACC_EXECUTABLE}
- -d
- -p ${_basename}
- -o${_out}
- ${_in}
- DEPENDS ${_in}
- )
+ IF (DEFINED ENV{SOURCE_DATE_EPOCH})
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${_out}
+ COMMAND ${YACC_EXECUTABLE}
+ --no-lines
+ -d
+ -p ${_basename}
+ -o${_out}
+ ${_in}
+ DEPENDS ${_in}
+ )
+ ELSE ()
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${_out}
+ COMMAND ${YACC_EXECUTABLE}
+ -d
+ -p ${_basename}
+ -o${_out}
+ ${_in}
+ DEPENDS ${_in}
+ )
+ ENDIF ()
LIST(APPEND ${_source} ${_in})
LIST(APPEND ${_generated} ${_out})
ENDFOREACH (_current_FILE)
--
2.26.2.Cisco
@@ -1,145 +0,0 @@
From 4585d515b962f3b3a5e81caa64e13e8d9ed2e431 Mon Sep 17 00:00:00 2001
From: Hitendra Prajapati <hprajapati@mvista.com>
Date: Mon, 26 Sep 2022 12:47:00 +0530
Subject: [PATCH] CVE-2022-3190
Upstream-Status: Backport [https://gitlab.com/wireshark/wireshark/-/commit/67326401a595fffbc67eeed48eb6c55d66a55f67]
CVE : CVE-2022-3190
Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
---
epan/dissectors/packet-f5ethtrailer.c | 108 +++++++++++++-------------
1 file changed, 56 insertions(+), 52 deletions(-)
diff --git a/epan/dissectors/packet-f5ethtrailer.c b/epan/dissectors/packet-f5ethtrailer.c
index ed77dfd..b15b0d4 100644
--- a/epan/dissectors/packet-f5ethtrailer.c
+++ b/epan/dissectors/packet-f5ethtrailer.c
@@ -2741,69 +2741,73 @@ dissect_dpt_trailer(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *d
static gint
dissect_old_trailer(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
- proto_tree *type_tree = NULL;
- proto_item *ti = NULL;
guint offset = 0;
- guint processed = 0;
- f5eth_tap_data_t *tdata = (f5eth_tap_data_t *)data;
- guint8 type;
- guint8 len;
- guint8 ver;
/* While we still have data in the trailer. For old format trailers, this needs
* type, length, version (3 bytes) and for new format trailers, the magic header (4 bytes).
* All old format trailers are at least 4 bytes long, so just check for length of magic.
*/
- while (tvb_reported_length_remaining(tvb, offset)) {
- type = tvb_get_guint8(tvb, offset);
- len = tvb_get_guint8(tvb, offset + F5_OFF_LENGTH) + F5_OFF_VERSION;
- ver = tvb_get_guint8(tvb, offset + F5_OFF_VERSION);
-
- if (len <= tvb_reported_length_remaining(tvb, offset) && type >= F5TYPE_LOW
- && type <= F5TYPE_HIGH && len >= F5_MIN_SANE && len <= F5_MAX_SANE
- && ver <= F5TRAILER_VER_MAX) {
- /* Parse out the specified trailer. */
- switch (type) {
- case F5TYPE_LOW:
- ti = proto_tree_add_item(tree, hf_low_id, tvb, offset, len, ENC_NA);
- type_tree = proto_item_add_subtree(ti, ett_f5ethtrailer_low);
-
- processed = dissect_low_trailer(tvb, pinfo, type_tree, offset, len, ver, tdata);
- if (processed > 0) {
- tdata->trailer_len += processed;
- tdata->noise_low = 1;
- }
- break;
- case F5TYPE_MED:
- ti = proto_tree_add_item(tree, hf_med_id, tvb, offset, len, ENC_NA);
- type_tree = proto_item_add_subtree(ti, ett_f5ethtrailer_med);
-
- processed = dissect_med_trailer(tvb, pinfo, type_tree, offset, len, ver, tdata);
- if (processed > 0) {
- tdata->trailer_len += processed;
- tdata->noise_med = 1;
- }
- break;
- case F5TYPE_HIGH:
- ti = proto_tree_add_item(tree, hf_high_id, tvb, offset, len, ENC_NA);
- type_tree = proto_item_add_subtree(ti, ett_f5ethtrailer_high);
-
- processed =
- dissect_high_trailer(tvb, pinfo, type_tree, offset, len, ver, tdata);
- if (processed > 0) {
- tdata->trailer_len += processed;
- tdata->noise_high = 1;
- }
- break;
+ while (tvb_reported_length_remaining(tvb, offset) >= F5_MIN_SANE) {
+ /* length field does not include the type and length bytes. Add them back in */
+ guint8 len = tvb_get_guint8(tvb, offset + F5_OFF_LENGTH) + F5_OFF_VERSION;
+ if (len > tvb_reported_length_remaining(tvb, offset)
+ || len < F5_MIN_SANE || len > F5_MAX_SANE) {
+ /* Invalid length - either a malformed trailer, corrupt packet, or not f5ethtrailer */
+ return offset;
+ }
+ guint8 type = tvb_get_guint8(tvb, offset);
+ guint8 ver = tvb_get_guint8(tvb, offset + F5_OFF_VERSION);
+
+ /* Parse out the specified trailer. */
+ proto_tree *type_tree = NULL;
+ proto_item *ti = NULL;
+ f5eth_tap_data_t *tdata = (f5eth_tap_data_t *)data;
+ guint processed = 0;
+
+ switch (type) {
+ case F5TYPE_LOW:
+ ti = proto_tree_add_item(tree, hf_low_id, tvb, offset, len, ENC_NA);
+ type_tree = proto_item_add_subtree(ti, ett_f5ethtrailer_low);
+
+ processed = dissect_low_trailer(tvb, pinfo, type_tree, offset, len, ver, tdata);
+ if (processed > 0) {
+ tdata->trailer_len += processed;
+ tdata->noise_low = 1;
}
- if (processed == 0) {
- proto_item_set_len(ti, 1);
- return offset;
+ break;
+ case F5TYPE_MED:
+ ti = proto_tree_add_item(tree, hf_med_id, tvb, offset, len, ENC_NA);
+ type_tree = proto_item_add_subtree(ti, ett_f5ethtrailer_med);
+
+ processed = dissect_med_trailer(tvb, pinfo, type_tree, offset, len, ver, tdata);
+ if (processed > 0) {
+ tdata->trailer_len += processed;
+ tdata->noise_med = 1;
+ }
+ break;
+ case F5TYPE_HIGH:
+ ti = proto_tree_add_item(tree, hf_high_id, tvb, offset, len, ENC_NA);
+ type_tree = proto_item_add_subtree(ti, ett_f5ethtrailer_high);
+
+ processed =
+ dissect_high_trailer(tvb, pinfo, type_tree, offset, len, ver, tdata);
+ if (processed > 0) {
+ tdata->trailer_len += processed;
+ tdata->noise_high = 1;
}
+ break;
+ default:
+ /* Unknown type - malformed trailer, corrupt packet, or not f5ethtrailer - bali out*/
+ return offset;
+ }
+ if (processed == 0) {
+ /* couldn't process trailer - bali out */
+ proto_item_set_len(ti, 1);
+ return offset;
}
offset += processed;
}
-return offset;
+ return offset;
} /* dissect_old_trailer() */
/*---------------------------------------------------------------------------*/
--
2.25.1
@@ -2,25 +2,22 @@ DESCRIPTION = "wireshark - a popular network protocol analyzer"
HOMEPAGE = "http://www.wireshark.org"
SECTION = "net"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=6e271234ba1a13c6e512e76b94ac2f77"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
DEPENDS = "pcre expat glib-2.0 glib-2.0-native libgcrypt libgpg-error libxml2 bison-native c-ares"
DEPENDS = "pcre2 expat glib-2.0 glib-2.0-native libgcrypt libgpg-error libxml2 bison-native c-ares"
DEPENDS:append:class-target = " wireshark-native chrpath-replacement-native "
SRC_URI = "https://1.eu.dl.wireshark.org/src/all-versions/wireshark-${PV}.tar.xz"
SRC_URI += " \
file://0001-wireshark-src-improve-reproducibility.patch \
file://0002-flex-Remove-line-directives.patch \
file://0003-bison-Remove-line-directives.patch \
file://0004-lemon-Remove-line-directives.patch \
file://CVE-2022-3190.patch \
"
SRC_URI = "https://1.eu.dl.wireshark.org/src/wireshark-${PV}.tar.xz \
file://0001-CMake-Fix-a-try_run-test-when-cross-compiling.patch \
file://0001-wireshark-src-improve-reproducibility.patch \
file://0002-flex-Remove-line-directives.patch \
file://0004-lemon-Remove-line-directives.patch \
"
UPSTREAM_CHECK_URI = "https://1.as.dl.wireshark.org/src"
SRC_URI[sha256sum] = "881a13303e263b7dc7fe337534c8a541d4914552287879bed30bbe76c5bf68ca"
SRC_URI[sha256sum] = "0079097a1b17ebc7250a73563f984c13327dac5016b7d53165810fbcca4bd884"
PE = "1"
@@ -43,13 +40,12 @@ PACKAGECONFIG[zlib] = "-DENABLE_ZLIB=ON,-DENABLE_ZLIB=OFF, zlib"
PACKAGECONFIG[geoip] = ",, geoip"
PACKAGECONFIG[plugins] = "-DENABLE_PLUGINS=ON,-DENABLE_PLUGINS=OFF"
PACKAGECONFIG[sbc] = "-DENABLE_SBC=ON,-DENABLE_SBC=OFF, sbc"
PACKAGECONFIG[libssh] = ",,libssh2"
PACKAGECONFIG[libssh] = "-DENABLE_LIBSSH=ON,-DENABLE_LIBSSH=OFF, libssh2"
PACKAGECONFIG[lz4] = "-DENABLE_LZ4=ON,-DENABLE_LZ4=OFF, lz4"
PACKAGECONFIG[zstd] = "-DENABLE_STTD=ON,-DENABLE_ZSTD=OFF, zstd"
PACKAGECONFIG[nghttp2] = "-DENABLE_NGHTTP2=ON,-DENABLE_NGHTTP2=OFF, nghttp2"
# these next two options require addional layers
PACKAGECONFIG[c-ares] = "-DENABLE_CARES=ON,-DENABLE_CARES=OFF, c-ares"
PACKAGECONFIG[qt5] = "-DENABLE_QT5=ON -DBUILD_wireshark=ON, -DENABLE_QT5=OFF -DBUILD_wireshark=OFF, qttools-native qtmultimedia qtsvg"
inherit ${@bb.utils.contains('PACKAGECONFIG', 'qt5', 'cmake_qt5', '', d)}
@@ -64,6 +60,16 @@ EXTRA_OECMAKE += "-DENABLE_NETLINK=ON \
"
CFLAGS:append = " -lm"
do_compile:append:class-target() {
# Fix TMPDIR, these are in the comments section
sed -i -e "s:** source file.*::g" ${B}/wiretap/ascend_parser.c
sed -i -e "s:** source file.*::g" ${B}/wiretap/candump_parser.c
sed -i -e "s:** source file.*::g" ${B}/wiretap/busmaster_parser.c
sed -i -e "s:** source file.*::g" ${B}/epan/protobuf_lang_parser.c
sed -i -e "s:** source file.*::g" ${B}/epan/dtd_grammar.c
sed -i -e "s:** source file.*::g" ${B}/epan/dfilter/grammar.c
}
do_install:append:class-native() {
install -d ${D}${bindir}
for f in lemon
@@ -77,6 +83,9 @@ do_install:append:class-target() {
do
chrpath --delete $f
done
# We don't need the cmake files installed
rm -fr ${D}${usrlib}/${BPN}/cmake
}
PACKAGE_BEFORE_PN += "tshark"