added my Recipes
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
#
|
||||
Wireshark - Notes
|
||||
|
||||
URL: http://www.wireshark.org/
|
||||
User Guide: http://www.wireshark.org/docs/wsug_html_chunked/
|
||||
Secruity advisories: http://www.wireshark.org/security/
|
||||
|
||||
Wireshark is slowly moving away from gtk and towards QT as their graphical stack.
|
||||
Currently gtk is supported with this release and I plan on integrating QT.
|
||||
|
||||
|
||||
|
||||
Adding the wireshark to your build
|
||||
========================================
|
||||
|
||||
via local.conf
|
||||
IMAGE_INSTALL:append = " wireshark"
|
||||
|
||||
Adding the wireshark to your graphical build
|
||||
========================================
|
||||
via local.conf
|
||||
IMAGE_INSTALL:append = " wireshark"
|
||||
|
||||
and one of:
|
||||
|
||||
EXTRA_IMAGE_FEATURES += "x11-base"
|
||||
|
||||
or use the "core-image-x11"
|
||||
|
||||
|
||||
Maintenance
|
||||
-----------
|
||||
|
||||
Send patches, comments or questions to openembedded-devel@lists.openembedded.org
|
||||
|
||||
When sending single patches, please use something like:
|
||||
|
||||
git send-email -1 -M \
|
||||
--to openembedded-devel@lists.openembedded.org \
|
||||
--cc akuster@mvista.com \
|
||||
--subject-prefix=meta-networking][PATCH
|
||||
|
||||
Maintainer: Armin Kuster <akuster@mvista.com>
|
||||
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
From 0a9ab056ce7582033a21d6bc541ece520bf2b0b6 Mon Sep 17 00:00:00 2001
|
||||
From: Oleksiy Obitotskyy <oobitots@cisco.com>
|
||||
Date: Thu, 26 Nov 2020 05:38:31 -0800
|
||||
Subject: [PATCH] wireshark-src: improve reproducibility
|
||||
|
||||
Cut absolute path for filename in generated code
|
||||
comments.
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Oleksiy Obitotskyy <oobitots@cisco.com>
|
||||
---
|
||||
tools/make-plugin-reg.py | 2 +-
|
||||
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():
|
||||
|
||||
print("/*")
|
||||
print(" * Do not modify this file. Changes will be overwritten.")
|
||||
- print(" * Generated automatically from %s" % (sys.argv[0]))
|
||||
+ print(" * Generated automatically from %s" % (os.path.basename(sys.argv[0])))
|
||||
print(" */\n")
|
||||
|
||||
print("""
|
||||
--
|
||||
2.26.2.Cisco
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
From 3e571e24c730f747d18ed02ba7451e9e00480fc7 Mon Sep 17 00:00:00 2001
|
||||
From: Oleksiy Obitotskyy <oobitots@cisco.com>
|
||||
Date: Thu, 26 Nov 2020 12:00:43 -0800
|
||||
Subject: [PATCH] flex: Remove #line directives
|
||||
|
||||
Append --noline option to flex to not
|
||||
generate #line directives with absolute file patch.
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Oleksiy Obitotskyy <oobitots@cisco.com>
|
||||
---
|
||||
cmake/modules/FindLEX.cmake | 18 +++++++++++++-----
|
||||
1 file changed, 13 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/cmake/modules/FindLEX.cmake b/cmake/modules/FindLEX.cmake
|
||||
index 0008bc4..ec68f84 100644
|
||||
--- a/cmake/modules/FindLEX.cmake
|
||||
+++ b/cmake/modules/FindLEX.cmake
|
||||
@@ -32,11 +32,19 @@ MACRO(ADD_LEX_FILES _source _generated)
|
||||
SET(_outc ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.c)
|
||||
SET(_outh ${CMAKE_CURRENT_BINARY_DIR}/${_basename}_lex.h)
|
||||
|
||||
- ADD_CUSTOM_COMMAND(
|
||||
- OUTPUT ${_outc} ${_outh}
|
||||
- COMMAND ${LEX_EXECUTABLE} -o${_outc} --header-file=${_outh} ${_in}
|
||||
- DEPENDS ${_in}
|
||||
- )
|
||||
+ IF (DEFINED ENV{SOURCE_DATE_EPOCH})
|
||||
+ ADD_CUSTOM_COMMAND(
|
||||
+ OUTPUT ${_outc} ${_outh}
|
||||
+ COMMAND ${LEX_EXECUTABLE} --noline -o${_outc} --header-file=${_outh} ${_in}
|
||||
+ DEPENDS ${_in}
|
||||
+ )
|
||||
+ ELSE ()
|
||||
+ ADD_CUSTOM_COMMAND(
|
||||
+ OUTPUT ${_outc} ${_outh}
|
||||
+ COMMAND ${LEX_EXECUTABLE} -o${_outc} --header-file=${_outh} ${_in}
|
||||
+ DEPENDS ${_in}
|
||||
+ )
|
||||
+ ENDIF ()
|
||||
LIST(APPEND ${_source} ${_in})
|
||||
LIST(APPEND ${_generated} ${_outc})
|
||||
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
|
||||
--
|
||||
2.26.2.Cisco
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
From 17f05a8d02c589e4867906f70381e63e46a67870 Mon Sep 17 00:00:00 2001
|
||||
From: Oleksiy Obitotskyy <oobitots@cisco.com>
|
||||
Date: Wed, 27 Jan 2021 06:47:13 -0800
|
||||
Subject: [PATCH] lemon: Remove #line directives
|
||||
|
||||
In case of reproducible build remove #line
|
||||
directives with extra option '-l'.
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Oleksiy Obitotskyy <oobitots@cisco.com>
|
||||
---
|
||||
cmake/modules/UseLemon.cmake | 49 +++++++++++++++++++++++++-----------
|
||||
1 file changed, 34 insertions(+), 15 deletions(-)
|
||||
|
||||
Index: wireshark-3.4.11/cmake/modules/UseLemon.cmake
|
||||
===================================================================
|
||||
--- wireshark-3.4.11.orig/cmake/modules/UseLemon.cmake
|
||||
+++ wireshark-3.4.11/cmake/modules/UseLemon.cmake
|
||||
@@ -7,21 +7,40 @@ MACRO(ADD_LEMON_FILES _source _generated
|
||||
|
||||
SET(_out ${CMAKE_CURRENT_BINARY_DIR}/${_basename})
|
||||
|
||||
- ADD_CUSTOM_COMMAND(
|
||||
- OUTPUT
|
||||
- ${_out}.c
|
||||
- # These files are generated as side-effect
|
||||
- ${_out}.h
|
||||
- ${_out}.out
|
||||
- COMMAND $<TARGET_FILE:lemon>
|
||||
- -T${_lemonpardir}/lempar.c
|
||||
- -d.
|
||||
- ${_in}
|
||||
- DEPENDS
|
||||
- ${_in}
|
||||
- lemon
|
||||
- ${_lemonpardir}/lempar.c
|
||||
- )
|
||||
+ IF (DEFINED ENV{SOURCE_DATE_EPOCH})
|
||||
+ ADD_CUSTOM_COMMAND(
|
||||
+ OUTPUT
|
||||
+ ${_out}.c
|
||||
+ # These files are generated as side-effect
|
||||
+ ${_out}.h
|
||||
+ ${_out}.out
|
||||
+ COMMAND lemon
|
||||
+ -l
|
||||
+ -T${_lemonpardir}/lempar.c
|
||||
+ -d.
|
||||
+ ${_in}
|
||||
+ DEPENDS
|
||||
+ ${_in}
|
||||
+ lemon
|
||||
+ ${_lemonpardir}/lempar.c
|
||||
+ )
|
||||
+ ELSE ()
|
||||
+ ADD_CUSTOM_COMMAND(
|
||||
+ OUTPUT
|
||||
+ ${_out}.c
|
||||
+ # These files are generated as side-effect
|
||||
+ ${_out}.h
|
||||
+ ${_out}.out
|
||||
+ COMMAND lemon
|
||||
+ -T${_lemonpardir}/lempar.c
|
||||
+ -d.
|
||||
+ ${_in}
|
||||
+ DEPENDS
|
||||
+ ${_in}
|
||||
+ lemon
|
||||
+ ${_lemonpardir}/lempar.c
|
||||
+ )
|
||||
+ ENDIF ()
|
||||
|
||||
LIST(APPEND ${_source} ${_in})
|
||||
LIST(APPEND ${_generated} ${_out}.c)
|
||||
@@ -0,0 +1,145 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,122 @@
|
||||
From 265cbf15a418b629c3c8f02c0ba901913b1c8fd2 Mon Sep 17 00:00:00 2001
|
||||
From: Gerald Combs <gerald@wireshark.org>
|
||||
Date: Thu, 18 May 2023 13:52:48 -0700
|
||||
Subject: [PATCH] RTPS: Fixup our g_strlcpy dest_sizes
|
||||
|
||||
Use the proper dest_size in various g_strlcpy calls.
|
||||
|
||||
Fixes #19085
|
||||
|
||||
(cherry picked from commit 28fdce547c417b868c521f87fb58f71ca6b1e3f7)
|
||||
|
||||
Upstream-Status: Backport [https://gitlab.com/wireshark/wireshark/-/commit/265cbf15a418b629c3c8f02c0ba901913b1c8fd2]
|
||||
CVE: CVE-2023-0666
|
||||
Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
|
||||
---
|
||||
epan/dissectors/packet-rtps.c | 22 +++++++++++-----------
|
||||
1 file changed, 11 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/epan/dissectors/packet-rtps.c b/epan/dissectors/packet-rtps.c
|
||||
index 5c2d1c1..ef592d7 100644
|
||||
--- a/epan/dissectors/packet-rtps.c
|
||||
+++ b/epan/dissectors/packet-rtps.c
|
||||
@@ -3025,7 +3025,7 @@ static gint rtps_util_add_typecode(proto_tree *tree, tvbuff_t *tvb, gint offset,
|
||||
++tk_id;
|
||||
}
|
||||
|
||||
- g_strlcpy(type_name, rtps_util_typecode_id_to_string(tk_id), 40);
|
||||
+ g_strlcpy(type_name, rtps_util_typecode_id_to_string(tk_id), sizeof(type_name));
|
||||
|
||||
/* Structure of the typecode data:
|
||||
*
|
||||
@@ -3196,7 +3196,7 @@ static gint rtps_util_add_typecode(proto_tree *tree, tvbuff_t *tvb, gint offset,
|
||||
member_name, -1, NULL, ndds_40_hack);
|
||||
}
|
||||
/* Finally prints the name of the struct (if provided) */
|
||||
- g_strlcpy(type_name, "}", 40);
|
||||
+ g_strlcpy(type_name, "}", sizeof(type_name));
|
||||
break;
|
||||
|
||||
} /* end of case UNION */
|
||||
@@ -3367,7 +3367,7 @@ static gint rtps_util_add_typecode(proto_tree *tree, tvbuff_t *tvb, gint offset,
|
||||
}
|
||||
}
|
||||
/* Finally prints the name of the struct (if provided) */
|
||||
- g_strlcpy(type_name, "}", 40);
|
||||
+ g_strlcpy(type_name, "}", sizeof(type_name));
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -3459,7 +3459,7 @@ static gint rtps_util_add_typecode(proto_tree *tree, tvbuff_t *tvb, gint offset,
|
||||
offset += 4;
|
||||
alias_name = tvb_get_string_enc(wmem_packet_scope(), tvb, offset, alias_name_length, ENC_ASCII);
|
||||
offset += alias_name_length;
|
||||
- g_strlcpy(type_name, alias_name, 40);
|
||||
+ g_strlcpy(type_name, alias_name, sizeof(type_name));
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -3494,7 +3494,7 @@ static gint rtps_util_add_typecode(proto_tree *tree, tvbuff_t *tvb, gint offset,
|
||||
if (tk_id == RTI_CDR_TK_VALUE_PARAM) {
|
||||
type_id_name = "valueparam";
|
||||
}
|
||||
- g_snprintf(type_name, 40, "%s '%s'", type_id_name, value_name);
|
||||
+ g_snprintf(type_name, sizeof(type_name), "%s '%s'", type_id_name, value_name);
|
||||
break;
|
||||
}
|
||||
} /* switch(tk_id) */
|
||||
@@ -3673,7 +3673,7 @@ static gint rtps_util_add_type_library_type(proto_tree *tree,
|
||||
long_number = tvb_get_guint32(tvb, offset_tmp, encoding);
|
||||
name = tvb_get_string_enc(wmem_packet_scope(), tvb, offset_tmp+4, long_number, ENC_ASCII);
|
||||
if (info)
|
||||
- g_strlcpy(info->member_name, name, long_number);
|
||||
+ g_strlcpy(info->member_name, name, sizeof(info->member_name));
|
||||
|
||||
proto_item_append_text(tree, " %s", name);
|
||||
offset += member_length;
|
||||
@@ -3848,13 +3848,13 @@ static gint rtps_util_add_type_member(proto_tree *tree,
|
||||
proto_item_append_text(tree, " %s (ID: %d)", name, member_id);
|
||||
if (member_object) {
|
||||
member_object->member_id = member_id;
|
||||
- g_strlcpy(member_object->member_name, name, long_number < 256 ? long_number : 256);
|
||||
+ g_strlcpy(member_object->member_name, name, sizeof(member_object->member_name));
|
||||
member_object->type_id = member_type_id;
|
||||
}
|
||||
if (info && info->extensibility == EXTENSIBILITY_MUTABLE) {
|
||||
mutable_member_mapping * mutable_mapping = NULL;
|
||||
mutable_mapping = wmem_new(wmem_file_scope(), mutable_member_mapping);
|
||||
- g_strlcpy(mutable_mapping->member_name, name, long_number < 256 ? long_number : 256);
|
||||
+ g_strlcpy(mutable_mapping->member_name, name, sizeof(mutable_mapping->member_name));
|
||||
mutable_mapping->struct_type_id = info->type_id;
|
||||
mutable_mapping->member_type_id = member_type_id;
|
||||
mutable_mapping->member_id = member_id;
|
||||
@@ -3909,7 +3909,7 @@ static gint rtps_util_add_type_union_member(proto_tree *tree,
|
||||
union_member_mapping * mapping = NULL;
|
||||
|
||||
mapping = wmem_new(wmem_file_scope(), union_member_mapping);
|
||||
- g_strlcpy(mapping->member_name, object.member_name, 256);
|
||||
+ g_strlcpy(mapping->member_name, object.member_name, sizeof(mapping->member_name));
|
||||
mapping->member_type_id = object.type_id;
|
||||
mapping->discriminator = HASHMAP_DISCRIMINATOR_CONSTANT;
|
||||
mapping->union_type_id = union_type_id + mapping->discriminator;
|
||||
@@ -3922,7 +3922,7 @@ static gint rtps_util_add_type_union_member(proto_tree *tree,
|
||||
union_member_mapping * mapping = NULL;
|
||||
|
||||
mapping = wmem_new(wmem_file_scope(), union_member_mapping);
|
||||
- g_strlcpy(mapping->member_name, object.member_name, 256);
|
||||
+ g_strlcpy(mapping->member_name, object.member_name, sizeof(mapping->member_name));
|
||||
mapping->member_type_id = object.type_id;
|
||||
mapping->discriminator = -1;
|
||||
mapping->union_type_id = union_type_id + mapping->discriminator;
|
||||
@@ -3942,7 +3942,7 @@ static gint rtps_util_add_type_union_member(proto_tree *tree,
|
||||
ti = proto_tree_add_item(labels, hf_rtps_type_object_union_label, tvb, offset_tmp, 4, encoding);
|
||||
offset_tmp += 4;
|
||||
|
||||
- g_strlcpy(mapping->member_name, object.member_name, 256);
|
||||
+ g_strlcpy(mapping->member_name, object.member_name, sizeof(mapping->member_name));
|
||||
mapping->member_type_id = object.type_id;
|
||||
mapping->discriminator = discriminator_case;
|
||||
mapping->union_type_id = union_type_id + discriminator_case;
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
From 85fbca8adb09ea8e1af635db3d92727fbfa1e28a Mon Sep 17 00:00:00 2001
|
||||
From: John Thacker <johnthacker@gmail.com>
|
||||
Date: Thu, 18 May 2023 18:06:36 -0400
|
||||
Subject: [PATCH] MS-MMS: Use format_text_string()
|
||||
|
||||
The length of a string transcoded from UTF-16 to UTF-8 can be
|
||||
shorter (or longer) than the original length in bytes in the packet.
|
||||
Use the new string length, not the original length.
|
||||
|
||||
Use format_text_string, which is a convenience function that
|
||||
calls strlen.
|
||||
|
||||
Fix #19086
|
||||
|
||||
(cherry picked from commit 1c45a899f83fa88e60ab69936bea3c4754e7808b)
|
||||
|
||||
Upstream-Status: Backport [https://gitlab.com/wireshark/wireshark/-/commit/85fbca8adb09ea8e1af635db3d92727fbfa1e28a]
|
||||
CVE: CVE-2023-0667
|
||||
Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
|
||||
---
|
||||
epan/dissectors/packet-ms-mms.c | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/epan/dissectors/packet-ms-mms.c b/epan/dissectors/packet-ms-mms.c
|
||||
index f4dbcd0..092a64b 100644
|
||||
--- a/epan/dissectors/packet-ms-mms.c
|
||||
+++ b/epan/dissectors/packet-ms-mms.c
|
||||
@@ -740,7 +740,7 @@ static void dissect_client_transport_info(tvbuff_t *tvb, packet_info *pinfo, pro
|
||||
transport_info, "Transport: (%s)", transport_info);
|
||||
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO, " (%s)",
|
||||
- format_text(wmem_packet_scope(), (guchar*)transport_info, length_remaining - 20));
|
||||
+ format_text_string(pinfo->pool, (const guchar*)transport_info));
|
||||
|
||||
|
||||
/* Try to extract details from this string */
|
||||
@@ -837,7 +837,7 @@ static void dissect_server_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
|
||||
ENC_UTF_16|ENC_LITTLE_ENDIAN, wmem_packet_scope(), &server_version);
|
||||
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO, " (version='%s')",
|
||||
- format_text(wmem_packet_scope(), (const guchar*)server_version, strlen(server_version)));
|
||||
+ format_text_string(pinfo->pool, (const guchar*)server_version));
|
||||
}
|
||||
offset += (server_version_length*2);
|
||||
|
||||
@@ -891,7 +891,7 @@ static void dissect_client_player_info(tvbuff_t *tvb, packet_info *pinfo, proto_
|
||||
ENC_UTF_16|ENC_LITTLE_ENDIAN, wmem_packet_scope(), &player_info);
|
||||
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO, " (%s)",
|
||||
- format_text(wmem_packet_scope(), (const guchar*)player_info, strlen(player_info)));
|
||||
+ format_text_string(pinfo->pool, (const guchar*)player_info));
|
||||
}
|
||||
|
||||
/* Dissect info about where client wants to start playing from */
|
||||
@@ -966,7 +966,7 @@ static void dissect_request_server_file(tvbuff_t *tvb, packet_info *pinfo, proto
|
||||
ENC_UTF_16|ENC_LITTLE_ENDIAN, wmem_packet_scope(), &server_file);
|
||||
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO, " (%s)",
|
||||
- format_text(wmem_packet_scope(), (const guchar*)server_file, strlen(server_file)));
|
||||
+ format_text_string(pinfo->pool, (const guchar*)server_file));
|
||||
}
|
||||
|
||||
/* Dissect media details from server */
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
From c4f37d77b29ec6a9754795d0efb6f68d633728d9 Mon Sep 17 00:00:00 2001
|
||||
From: John Thacker <johnthacker@gmail.com>
|
||||
Date: Sat, 20 May 2023 23:08:08 -0400
|
||||
Subject: [PATCH] synphasor: Use val_to_str_const
|
||||
|
||||
Don't use a value from packet data to directly index a value_string,
|
||||
particularly when the value string doesn't cover all possible values.
|
||||
|
||||
Fix #19087
|
||||
|
||||
Upstream-Status: Backport [https://gitlab.com/wireshark/wireshark/-/commit/c4f37d77b29ec6a9754795d0efb6f68d633728d9]
|
||||
CVE: CVE-2023-0668
|
||||
Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
|
||||
---
|
||||
epan/dissectors/packet-synphasor.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/epan/dissectors/packet-synphasor.c b/epan/dissectors/packet-synphasor.c
|
||||
index 12b388b..fbde875 100644
|
||||
--- a/epan/dissectors/packet-synphasor.c
|
||||
+++ b/epan/dissectors/packet-synphasor.c
|
||||
@@ -1212,7 +1212,7 @@ static gint dissect_PHSCALE(tvbuff_t *tvb, proto_tree *tree, gint offset, gint c
|
||||
|
||||
data_flag_tree = proto_tree_add_subtree_format(single_phasor_scaling_and_flags_tree, tvb, offset, 4,
|
||||
ett_conf_phflags, NULL, "Phasor Data flags: %s",
|
||||
- conf_phasor_type[tvb_get_guint8(tvb, offset + 2)].strptr);
|
||||
+ val_to_str_const(tvb_get_guint8(tvb, offset + 2), conf_phasor_type, "Unknown"));
|
||||
|
||||
/* first and second bytes - phasor modification flags*/
|
||||
phasor_flag1_tree = proto_tree_add_subtree_format(data_flag_tree, tvb, offset, 2, ett_conf_phmod_flags,
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,108 @@
|
||||
From 0181fafb2134a177328443a60b5e29c4ee1041cb Mon Sep 17 00:00:00 2001
|
||||
From: Guy Harris <gharris@sonic.net>
|
||||
Date: Tue, 16 May 2023 12:05:07 -0700
|
||||
Subject: [PATCH] candump: check for a too-long frame length.
|
||||
|
||||
If the frame length is longer than the maximum, report an error in the
|
||||
file.
|
||||
|
||||
Fixes #19062, preventing the overflow on a buffer on the stack (assuming
|
||||
your compiler doesn't call a bounds-checknig version of memcpy() if the
|
||||
size of the target space is known).
|
||||
|
||||
Upstream-Status: Backport [https://gitlab.com/wireshark/wireshark/-/commit/0181fafb2134a177328443a60b5e29c4ee1041cb]
|
||||
CVE: CVE-2023-2855
|
||||
|
||||
Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
|
||||
---
|
||||
wiretap/candump.c | 39 +++++++++++++++++++++++++++++++--------
|
||||
1 file changed, 31 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/wiretap/candump.c b/wiretap/candump.c
|
||||
index 0def7bc..3f7c2b2 100644
|
||||
--- a/wiretap/candump.c
|
||||
+++ b/wiretap/candump.c
|
||||
@@ -26,8 +26,9 @@ static gboolean candump_seek_read(wtap *wth, gint64 seek_off,
|
||||
wtap_rec *rec, Buffer *buf,
|
||||
int *err, gchar **err_info);
|
||||
|
||||
-static void
|
||||
-candump_write_packet(wtap_rec *rec, Buffer *buf, const msg_t *msg)
|
||||
+static gboolean
|
||||
+candump_write_packet(wtap_rec *rec, Buffer *buf, const msg_t *msg, int *err,
|
||||
+ gchar **err_info)
|
||||
{
|
||||
static const char *can_proto_name = "can-hostendian";
|
||||
static const char *canfd_proto_name = "canfd";
|
||||
@@ -59,6 +60,18 @@ candump_write_packet(wtap_rec *rec, Buffer *buf, const msg_t *msg)
|
||||
{
|
||||
canfd_frame_t canfd_frame = {0};
|
||||
|
||||
+ /*
|
||||
+ * There's a maximum of CANFD_MAX_DLEN bytes in a CAN-FD frame.
|
||||
+ */
|
||||
+ if (msg->data.length > CANFD_MAX_DLEN) {
|
||||
+ *err = WTAP_ERR_BAD_FILE;
|
||||
+ if (err_info != NULL) {
|
||||
+ *err_info = g_strdup_printf("candump: File has %u-byte CAN FD packet, bigger than maximum of %u",
|
||||
+ msg->data.length, CANFD_MAX_DLEN);
|
||||
+ }
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
canfd_frame.can_id = msg->id;
|
||||
canfd_frame.flags = msg->flags;
|
||||
canfd_frame.len = msg->data.length;
|
||||
@@ -70,6 +83,18 @@ candump_write_packet(wtap_rec *rec, Buffer *buf, const msg_t *msg)
|
||||
{
|
||||
can_frame_t can_frame = {0};
|
||||
|
||||
+ /*
|
||||
+ * There's a maximum of CAN_MAX_DLEN bytes in a CAN frame.
|
||||
+ */
|
||||
+ if (msg->data.length > CAN_MAX_DLEN) {
|
||||
+ *err = WTAP_ERR_BAD_FILE;
|
||||
+ if (err_info != NULL) {
|
||||
+ *err_info = g_strdup_printf("candump: File has %u-byte CAN packet, bigger than maximum of %u",
|
||||
+ msg->data.length, CAN_MAX_DLEN);
|
||||
+ }
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
can_frame.can_id = msg->id;
|
||||
can_frame.can_dlc = msg->data.length;
|
||||
memcpy(can_frame.data, msg->data.data, msg->data.length);
|
||||
@@ -84,6 +109,8 @@ candump_write_packet(wtap_rec *rec, Buffer *buf, const msg_t *msg)
|
||||
|
||||
rec->rec_header.packet_header.caplen = packet_length;
|
||||
rec->rec_header.packet_header.len = packet_length;
|
||||
+
|
||||
+ return TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
@@ -190,9 +217,7 @@ candump_read(wtap *wth, wtap_rec *rec, Buffer *buf, int *err, gchar **err_info,
|
||||
ws_debug_printf("%s: Stopped at offset %" PRIi64 "\n", G_STRFUNC, file_tell(wth->fh));
|
||||
#endif
|
||||
|
||||
- candump_write_packet(rec, buf, &msg);
|
||||
-
|
||||
- return TRUE;
|
||||
+ return candump_write_packet(rec, buf, &msg, err, err_info);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
@@ -216,9 +241,7 @@ candump_seek_read(wtap *wth , gint64 seek_off, wtap_rec *rec,
|
||||
if (!candump_parse(wth->random_fh, &msg, NULL, err, err_info))
|
||||
return FALSE;
|
||||
|
||||
- candump_write_packet(rec, buf, &msg);
|
||||
-
|
||||
- return TRUE;
|
||||
+ return candump_write_packet(rec, buf, &msg, err, err_info);
|
||||
}
|
||||
|
||||
/*
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
From db5135826de3a5fdb3618225c2ff02f4207012ca Mon Sep 17 00:00:00 2001
|
||||
From: Guy Harris <gharris@sonic.net>
|
||||
Date: Thu, 18 May 2023 15:03:23 -0700
|
||||
Subject: [PATCH] vms: fix the search for the packet length field.
|
||||
|
||||
The packet length field is of the form
|
||||
|
||||
Total Length = DDD = ^xXXX
|
||||
|
||||
where "DDD" is the length in decimal and "XXX" is the length in
|
||||
hexadecimal.
|
||||
|
||||
Search for "length ". not just "Length", as we skip past "Length ", not
|
||||
just "Length", so if we assume we found "Length " but only found
|
||||
"Length", we'd skip past the end of the string.
|
||||
|
||||
While we're at it, fail if we don't find a length field, rather than
|
||||
just blithely acting as if the packet length were zero.
|
||||
|
||||
Fixes #19083.
|
||||
|
||||
Upstream-Status: Backport [https://gitlab.com/wireshark/wireshark/-/commit/db5135826de3a5fdb3618225c2ff02f4207012ca]
|
||||
CVE: CVE-2023-2856
|
||||
|
||||
Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
|
||||
---
|
||||
wiretap/vms.c | 9 ++++++++-
|
||||
1 file changed, 8 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/wiretap/vms.c b/wiretap/vms.c
|
||||
index 0aa83ea..5f5fdbb 100644
|
||||
--- a/wiretap/vms.c
|
||||
+++ b/wiretap/vms.c
|
||||
@@ -318,6 +318,7 @@ parse_vms_packet(FILE_T fh, wtap_rec *rec, Buffer *buf, int *err, gchar **err_in
|
||||
{
|
||||
char line[VMS_LINE_LENGTH + 1];
|
||||
int num_items_scanned;
|
||||
+ gboolean have_pkt_len = FALSE;
|
||||
guint32 pkt_len = 0;
|
||||
int pktnum;
|
||||
int csec = 101;
|
||||
@@ -374,7 +375,7 @@ parse_vms_packet(FILE_T fh, wtap_rec *rec, Buffer *buf, int *err, gchar **err_in
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
- if ( (! pkt_len) && (p = strstr(line, "Length"))) {
|
||||
+ if ( (! have_pkt_len) && (p = strstr(line, "Length "))) {
|
||||
p += sizeof("Length ");
|
||||
while (*p && ! g_ascii_isdigit(*p))
|
||||
p++;
|
||||
@@ -390,9 +391,15 @@ parse_vms_packet(FILE_T fh, wtap_rec *rec, Buffer *buf, int *err, gchar **err_in
|
||||
*err_info = g_strdup_printf("vms: Length field '%s' not valid", p);
|
||||
return FALSE;
|
||||
}
|
||||
+ have_pkt_len = TRUE;
|
||||
break;
|
||||
}
|
||||
} while (! isdumpline(line));
|
||||
+ if (! have_pkt_len) {
|
||||
+ *err = WTAP_ERR_BAD_FILE;
|
||||
+ *err_info = g_strdup_printf("vms: Length field not found");
|
||||
+ return FALSE;
|
||||
+ }
|
||||
if (pkt_len > WTAP_MAX_PACKET_SIZE_STANDARD) {
|
||||
/*
|
||||
* Probably a corrupt capture file; return an error,
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
From cb190d6839ddcd4596b0205844f45553f1e77105 Mon Sep 17 00:00:00 2001
|
||||
From: Guy Harris <gharris@sonic.net>
|
||||
Date: Fri, 19 May 2023 16:29:45 -0700
|
||||
Subject: [PATCH] netscaler: add more checks to make sure the record is within
|
||||
the page.
|
||||
|
||||
Whie we're at it, restructure some other checks to test-before-casting -
|
||||
it's OK to test afterwards, but testing before makes it follow the
|
||||
pattern used elsewhere.
|
||||
|
||||
Fixes #19081.
|
||||
|
||||
Upstream-Status: Backport [https://gitlab.com/wireshark/wireshark/-/commit/cb190d6839ddcd4596b0205844f45553f1e77105]
|
||||
CVE: CVE-2023-2858
|
||||
|
||||
Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
|
||||
---
|
||||
wiretap/netscaler.c | 15 ++++++++++-----
|
||||
1 file changed, 10 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/wiretap/netscaler.c b/wiretap/netscaler.c
|
||||
index 01a7f6d..4fa020b 100644
|
||||
--- a/wiretap/netscaler.c
|
||||
+++ b/wiretap/netscaler.c
|
||||
@@ -1091,13 +1091,13 @@ static gboolean nstrace_set_start_time(wtap *wth, int *err, gchar **err_info)
|
||||
|
||||
#define PACKET_DESCRIBE(rec,buf,FULLPART,fullpart,ver,type,HEADERVER) \
|
||||
do {\
|
||||
- nspr_pktrace##fullpart##_v##ver##_t *type = (nspr_pktrace##fullpart##_v##ver##_t *) &nstrace_buf[nstrace_buf_offset];\
|
||||
/* Make sure the record header is entirely contained in the page */\
|
||||
- if ((nstrace_buflen - nstrace_buf_offset) < sizeof *type) {\
|
||||
+ if ((nstrace_buflen - nstrace_buf_offset) < sizeof(nspr_pktrace##fullpart##_v##ver##_t)) {\
|
||||
*err = WTAP_ERR_BAD_FILE;\
|
||||
*err_info = g_strdup("nstrace: record header crosses page boundary");\
|
||||
return FALSE;\
|
||||
}\
|
||||
+ nspr_pktrace##fullpart##_v##ver##_t *type = (nspr_pktrace##fullpart##_v##ver##_t *) &nstrace_buf[nstrace_buf_offset];\
|
||||
/* Check sanity of record size */\
|
||||
if (pletoh16(&type->nsprRecordSize) < sizeof *type) {\
|
||||
*err = WTAP_ERR_BAD_FILE;\
|
||||
@@ -1162,6 +1162,8 @@ static gboolean nstrace_read_v10(wtap *wth, wtap_rec *rec, Buffer *buf,
|
||||
|
||||
case NSPR_ABSTIME_V10:
|
||||
{
|
||||
+ if (!nstrace_ensure_buflen(nstrace, nstrace_buf_offset, sizeof(nspr_pktracefull_v10_t), err, err_info))
|
||||
+ return FALSE;
|
||||
nspr_pktracefull_v10_t *fp = (nspr_pktracefull_v10_t *) &nstrace_buf[nstrace_buf_offset];
|
||||
if (pletoh16(&fp->nsprRecordSize) == 0) {
|
||||
*err = WTAP_ERR_BAD_FILE;
|
||||
@@ -1175,6 +1177,8 @@ static gboolean nstrace_read_v10(wtap *wth, wtap_rec *rec, Buffer *buf,
|
||||
|
||||
case NSPR_RELTIME_V10:
|
||||
{
|
||||
+ if (!nstrace_ensure_buflen(nstrace, nstrace_buf_offset, sizeof(nspr_pktracefull_v10_t), err, err_info))
|
||||
+ return FALSE;
|
||||
nspr_pktracefull_v10_t *fp = (nspr_pktracefull_v10_t *) &nstrace_buf[nstrace_buf_offset];
|
||||
if (pletoh16(&fp->nsprRecordSize) == 0) {
|
||||
*err = WTAP_ERR_BAD_FILE;
|
||||
@@ -1192,6 +1196,8 @@ static gboolean nstrace_read_v10(wtap *wth, wtap_rec *rec, Buffer *buf,
|
||||
|
||||
default:
|
||||
{
|
||||
+ if (!nstrace_ensure_buflen(nstrace, nstrace_buf_offset, sizeof(nspr_pktracefull_v10_t), err, err_info))
|
||||
+ return FALSE;
|
||||
nspr_pktracefull_v10_t *fp = (nspr_pktracefull_v10_t *) &nstrace_buf[nstrace_buf_offset];
|
||||
if (pletoh16(&fp->nsprRecordSize) == 0) {
|
||||
*err = WTAP_ERR_BAD_FILE;
|
||||
@@ -1475,14 +1481,14 @@ static gboolean nstrace_read_v20(wtap *wth, wtap_rec *rec, Buffer *buf,
|
||||
|
||||
#define PACKET_DESCRIBE(rec,buf,FULLPART,ver,enumprefix,type,structname,HEADERVER)\
|
||||
do {\
|
||||
- nspr_##structname##_t *fp = (nspr_##structname##_t *) &nstrace_buf[nstrace_buf_offset];\
|
||||
/* Make sure the record header is entirely contained in the page */\
|
||||
- if ((nstrace->nstrace_buflen - nstrace_buf_offset) < sizeof *fp) {\
|
||||
+ if ((nstrace->nstrace_buflen - nstrace_buf_offset) < sizeof(nspr_##structname##_t)) {\
|
||||
*err = WTAP_ERR_BAD_FILE;\
|
||||
*err_info = g_strdup("nstrace: record header crosses page boundary");\
|
||||
g_free(nstrace_tmpbuff);\
|
||||
return FALSE;\
|
||||
}\
|
||||
+ nspr_##structname##_t *fp = (nspr_##structname##_t *) &nstrace_buf[nstrace_buf_offset];\
|
||||
(rec)->rec_type = REC_TYPE_PACKET;\
|
||||
TIMEDEFV##ver((rec),fp,type);\
|
||||
FULLPART##SIZEDEFV##ver((rec),fp,ver);\
|
||||
@@ -1589,7 +1595,6 @@ static gboolean nstrace_read_v30(wtap *wth, wtap_rec *rec, Buffer *buf,
|
||||
g_free(nstrace_tmpbuff);
|
||||
return FALSE;
|
||||
}
|
||||
-
|
||||
hdp = (nspr_hd_v20_t *) &nstrace_buf[nstrace_buf_offset];
|
||||
if (nspr_getv20recordsize(hdp) == 0) {
|
||||
*err = WTAP_ERR_BAD_FILE;
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
From 118815ca7c9f82c1f83f8f64d9e0e54673f31677 Mon Sep 17 00:00:00 2001
|
||||
From: John Thacker <johnthacker@gmail.com>
|
||||
Date: Sat, 13 May 2023 21:45:16 -0400
|
||||
Subject: [PATCH] GDSDB: Make sure our offset advances.
|
||||
|
||||
add_uint_string() returns the next offset to use, not the number
|
||||
of bytes consumed. So to consume all the bytes and make sure the
|
||||
offset advances, return the entire reported tvb length, not the
|
||||
number of bytes remaining.
|
||||
|
||||
Fixup 8d3c2177793e900cfc7cfaac776a2807e4ea289f
|
||||
Fixes #19068
|
||||
|
||||
Upstream-Status: Backport [https://gitlab.com/wireshark/wireshark/-/commit/118815ca7c9f82c1f83f8f64d9e0e54673f31677]
|
||||
CVE: CVE-2023-2879
|
||||
|
||||
Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
|
||||
---
|
||||
epan/dissectors/packet-gdsdb.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/epan/dissectors/packet-gdsdb.c b/epan/dissectors/packet-gdsdb.c
|
||||
index 75bcfb9..950d68f 100644
|
||||
--- a/epan/dissectors/packet-gdsdb.c
|
||||
+++ b/epan/dissectors/packet-gdsdb.c
|
||||
@@ -480,7 +480,7 @@ static int add_uint_string(proto_tree *tree, int hf_string, tvbuff_t *tvb, int o
|
||||
int ret_offset = offset + length;
|
||||
if (length < 4 || ret_offset < offset) {
|
||||
expert_add_info_format(NULL, ti, &ei_gdsdb_invalid_length, "Invalid length: %d", length);
|
||||
- return tvb_reported_length_remaining(tvb, offset);
|
||||
+ return tvb_reported_length(tvb);
|
||||
}
|
||||
return ret_offset;
|
||||
}
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,98 @@
|
||||
From ce87eac0325581b600b3093fcd75080df14ccfda Mon Sep 17 00:00:00 2001
|
||||
From: Gerald Combs <gerald@wireshark.org>
|
||||
Date: Tue, 23 May 2023 13:52:03 -0700
|
||||
Subject: [PATCH] XRA: Fix an infinite loop
|
||||
|
||||
C compilers don't care what size a value was on the wire. Use
|
||||
naturally-sized ints, including in dissect_message_channel_mb where we
|
||||
would otherwise overflow and loop infinitely.
|
||||
|
||||
Fixes #19100
|
||||
|
||||
Upstream-Status: Backport [https://gitlab.com/wireshark/wireshark/-/commit/e18d0e369729b0fff5f76f41cbae67e97c2e52e5]
|
||||
CVE: CVE-2023-2952
|
||||
|
||||
Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
|
||||
---
|
||||
epan/dissectors/packet-xra.c | 16 ++++++++--------
|
||||
1 file changed, 8 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/epan/dissectors/packet-xra.c b/epan/dissectors/packet-xra.c
|
||||
index 68a8e72..6c7ab74 100644
|
||||
--- a/epan/dissectors/packet-xra.c
|
||||
+++ b/epan/dissectors/packet-xra.c
|
||||
@@ -478,7 +478,7 @@ dissect_xra_tlv_cw_info(tvbuff_t * tvb, proto_tree * tree, void* data _U_, guint
|
||||
it = proto_tree_add_item (tree, hf_xra_tlv_cw_info, tvb, 0, tlv_length, ENC_NA);
|
||||
xra_tlv_cw_info_tree = proto_item_add_subtree (it, ett_xra_tlv_cw_info);
|
||||
|
||||
- guint32 tlv_index =0;
|
||||
+ unsigned tlv_index = 0;
|
||||
while (tlv_index < tlv_length) {
|
||||
guint8 type = tvb_get_guint8 (tvb, tlv_index);
|
||||
++tlv_index;
|
||||
@@ -533,7 +533,7 @@ dissect_xra_tlv_ms_info(tvbuff_t * tvb, proto_tree * tree, void* data _U_, guint
|
||||
it = proto_tree_add_item (tree, hf_xra_tlv_ms_info, tvb, 0, tlv_length, ENC_NA);
|
||||
xra_tlv_ms_info_tree = proto_item_add_subtree (it, ett_xra_tlv_ms_info);
|
||||
|
||||
- guint32 tlv_index =0;
|
||||
+ unsigned tlv_index = 0;
|
||||
while (tlv_index < tlv_length) {
|
||||
guint8 type = tvb_get_guint8 (tvb, tlv_index);
|
||||
++tlv_index;
|
||||
@@ -567,7 +567,7 @@ dissect_xra_tlv_burst_info(tvbuff_t * tvb, proto_tree * tree, void* data _U_, gu
|
||||
it = proto_tree_add_item (tree, hf_xra_tlv_burst_info, tvb, 0, tlv_length, ENC_NA);
|
||||
xra_tlv_burst_info_tree = proto_item_add_subtree (it, ett_xra_tlv_burst_info);
|
||||
|
||||
- guint32 tlv_index =0;
|
||||
+ unsigned tlv_index = 0;
|
||||
while (tlv_index < tlv_length) {
|
||||
guint8 type = tvb_get_guint8 (tvb, tlv_index);
|
||||
++tlv_index;
|
||||
@@ -607,7 +607,7 @@ dissect_xra_tlv(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, void* da
|
||||
it = proto_tree_add_item (tree, hf_xra_tlv, tvb, 0, tlv_length, ENC_NA);
|
||||
xra_tlv_tree = proto_item_add_subtree (it, ett_xra_tlv);
|
||||
|
||||
- guint32 tlv_index =0;
|
||||
+ unsigned tlv_index = 0;
|
||||
tvbuff_t *xra_tlv_cw_info_tvb, *xra_tlv_ms_info_tvb, *xra_tlv_burst_info_tvb;
|
||||
|
||||
while (tlv_index < tlv_length) {
|
||||
@@ -751,7 +751,7 @@ dissect_message_channel_mb(tvbuff_t * tvb, packet_info * pinfo, proto_tree* tree
|
||||
if(packet_start_pointer_field_present) {
|
||||
proto_tree_add_item_ret_uint (tree, hf_plc_mb_mc_psp, tvb, 1, 2, FALSE, &packet_start_pointer);
|
||||
|
||||
- guint16 docsis_start = 3 + packet_start_pointer;
|
||||
+ unsigned docsis_start = 3 + packet_start_pointer;
|
||||
while (docsis_start + 6 < remaining_length) {
|
||||
/*DOCSIS header in packet*/
|
||||
guint8 fc = tvb_get_guint8(tvb,docsis_start + 0);
|
||||
@@ -760,7 +760,7 @@ dissect_message_channel_mb(tvbuff_t * tvb, packet_info * pinfo, proto_tree* tree
|
||||
docsis_start += 1;
|
||||
continue;
|
||||
}
|
||||
- guint16 docsis_length = 256*tvb_get_guint8(tvb,docsis_start + 2) + tvb_get_guint8(tvb,docsis_start + 3);
|
||||
+ unsigned docsis_length = 256*tvb_get_guint8(tvb,docsis_start + 2) + tvb_get_guint8(tvb,docsis_start + 3);
|
||||
if (docsis_start + 6 + docsis_length <= remaining_length) {
|
||||
/*DOCSIS packet included in packet*/
|
||||
tvbuff_t *docsis_tvb;
|
||||
@@ -830,7 +830,7 @@ dissect_ncp_message_block(tvbuff_t * tvb, proto_tree * tree) {
|
||||
static int
|
||||
dissect_plc(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, void* data _U_) {
|
||||
|
||||
- guint16 offset = 0;
|
||||
+ int offset = 0;
|
||||
proto_tree *plc_tree;
|
||||
proto_item *plc_item;
|
||||
tvbuff_t *mb_tvb;
|
||||
@@ -890,7 +890,7 @@ dissect_plc(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, void* data _
|
||||
|
||||
static int
|
||||
dissect_ncp(tvbuff_t * tvb, proto_tree * tree, void* data _U_) {
|
||||
- guint16 offset = 0;
|
||||
+ int offset = 0;
|
||||
proto_tree *ncp_tree;
|
||||
proto_item *ncp_item;
|
||||
tvbuff_t *ncp_mb_tvb;
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,98 @@
|
||||
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"
|
||||
|
||||
DEPENDS = "pcre 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 \
|
||||
file://CVE-2023-2855.patch \
|
||||
file://CVE-2023-2856.patch \
|
||||
file://CVE-2023-2858.patch \
|
||||
file://CVE-2023-2879.patch \
|
||||
file://CVE-2023-2952.patch \
|
||||
file://CVE-2023-0666.patch \
|
||||
file://CVE-2023-0667.patch \
|
||||
file://CVE-2023-0668.patch \
|
||||
"
|
||||
|
||||
UPSTREAM_CHECK_URI = "https://1.as.dl.wireshark.org/src"
|
||||
|
||||
SRC_URI[sha256sum] = "881a13303e263b7dc7fe337534c8a541d4914552287879bed30bbe76c5bf68ca"
|
||||
|
||||
PE = "1"
|
||||
|
||||
inherit cmake pkgconfig python3native python3targetconfig perlnative upstream-version-is-even mime mime-xdg
|
||||
|
||||
PACKAGECONFIG ?= "libpcap gnutls libnl libcap sbc"
|
||||
|
||||
PACKAGECONFIG:class-native = "libpcap gnutls ssl libssh"
|
||||
|
||||
PACKAGECONFIG[libcap] = "-DENABLE_CAP=ON,-DENABLE_CAP=OFF -DENABLE_PCAP_NG_DEFAULT=ON, libcap"
|
||||
PACKAGECONFIG[libpcap] = "-DENABLE_PCAP=ON,-DENABLE_PCAP=OFF -DENABLE_PCAP_NG_DEFAULT=ON , libpcap"
|
||||
PACKAGECONFIG[libsmi] = "-DENABLE_SMI=ON,-DENABLE_SMI=OFF,libsmi"
|
||||
PACKAGECONFIG[libnl] = ",,libnl"
|
||||
PACKAGECONFIG[portaudio] = "-DENABLE_PORTAUDIO=ON,-DENABLE_PORTAUDIO=OFF, portaudio-v19"
|
||||
PACKAGECONFIG[gnutls] = "-DENABLE_GNUTLS=ON,-DENABLE_GNUTLS=OFF, gnutls"
|
||||
PACKAGECONFIG[ssl] = ",,openssl"
|
||||
PACKAGECONFIG[krb5] = "-DENABLE_KRB5=ON,-DENABLE_KRB5=OFF, krb5"
|
||||
PACKAGECONFIG[lua] = "-DENABLE_LUA=ON,-DENABLE_LUA=OFF, lua"
|
||||
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[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)}
|
||||
|
||||
EXTRA_OECMAKE += "-DENABLE_NETLINK=ON \
|
||||
-DBUILD_mmdbresolve=OFF \
|
||||
-DBUILD_randpktdump=OFF \
|
||||
-DBUILD_androiddump=OFF \
|
||||
-DBUILD_dcerpcidl2wrs=OFF \
|
||||
-DM_INCLUDE_DIR=${includedir} \
|
||||
-DM_LIBRARY=${libdir} \
|
||||
"
|
||||
CFLAGS:append = " -lm"
|
||||
|
||||
do_install:append:class-native() {
|
||||
install -d ${D}${bindir}
|
||||
for f in lemon
|
||||
do
|
||||
install -m 0755 ${B}/run/$f ${D}${bindir}
|
||||
done
|
||||
}
|
||||
|
||||
do_install:append:class-target() {
|
||||
for f in `find ${D}${libdir} ${D}${bindir} -type f -executable`
|
||||
do
|
||||
chrpath --delete $f
|
||||
done
|
||||
}
|
||||
|
||||
PACKAGE_BEFORE_PN += "tshark"
|
||||
|
||||
FILES:tshark = "${bindir}/tshark ${mandir}/man1/tshark.*"
|
||||
|
||||
FILES:${PN} += "${datadir}*"
|
||||
|
||||
RDEPENDS:tshark = "wireshark"
|
||||
|
||||
BBCLASSEXTEND = "native"
|
||||
Reference in New Issue
Block a user