diff options
| author | Ashish Sharma <asharma@mvista.com> | 2024-01-10 16:41:51 +0530 |
|---|---|---|
| committer | Armin Kuster <akuster808@gmail.com> | 2024-03-03 16:38:27 -0500 |
| commit | 2071373cce3791ae9ab75b68268c06c73f0ab764 (patch) | |
| tree | 8d3359ee99b41432cae48de87f4736bddded322d /meta-networking/recipes-support/wireshark/files/CVE-2023-1992.patch | |
| parent | 84a84000f735ac54b8668161768563a9b32602a3 (diff) | |
| download | meta-openembedded-2071373cce3791ae9ab75b68268c06c73f0ab764.tar.gz | |
wireshark: Backport fix for CVE-2023-1992
RPCoRDMA: Frame end cleanup for global write offsets
Upstream-Status: Backport from [https://gitlab.com/colin.mcinnes/wireshark/-/commit/3c8be14c827f1587da3c2b3bb0d9c04faff57413]
Signed-off-by: Ashish Sharma <asharma@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Diffstat (limited to 'meta-networking/recipes-support/wireshark/files/CVE-2023-1992.patch')
| -rw-r--r-- | meta-networking/recipes-support/wireshark/files/CVE-2023-1992.patch | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/meta-networking/recipes-support/wireshark/files/CVE-2023-1992.patch b/meta-networking/recipes-support/wireshark/files/CVE-2023-1992.patch new file mode 100644 index 0000000000..2fbef6bae0 --- /dev/null +++ b/meta-networking/recipes-support/wireshark/files/CVE-2023-1992.patch | |||
| @@ -0,0 +1,62 @@ | |||
| 1 | From 3c8be14c827f1587da3c2b3bb0d9c04faff57413 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: John Thacker <johnthacker@gmail.com> | ||
| 3 | Date: Sun, 19 Mar 2023 15:16:39 -0400 | ||
| 4 | Subject: [PATCH] RPCoRDMA: Frame end cleanup for global write offsets | ||
| 5 | |||
| 6 | Add a frame end routine for a global which is assigned to packet | ||
| 7 | scoped memory. It really should be made proto data, but is used | ||
| 8 | in a function in the header (that doesn't take the packet info | ||
| 9 | struct as an argument) and this fix needs to be made in stable | ||
| 10 | branches. | ||
| 11 | |||
| 12 | Fix #18852 | ||
| 13 | --- | ||
| 14 | Upstream-Status: Backport from [https://gitlab.com/colin.mcinnes/wireshark/-/commit/3c8be14c827f1587da3c2b3bb0d9c04faff57413] | ||
| 15 | CVE: CVE-2023-1992 | ||
| 16 | Signed-off-by: Ashish Sharma <asharma@mvista.com> | ||
| 17 | |||
| 18 | epan/dissectors/packet-rpcrdma.c | 14 ++++++++++++++ | ||
| 19 | 1 file changed, 14 insertions(+) | ||
| 20 | |||
| 21 | diff --git a/epan/dissectors/packet-rpcrdma.c b/epan/dissectors/packet-rpcrdma.c | ||
| 22 | index 680187b2653..3f250f0ea1c 100644 | ||
| 23 | --- a/epan/dissectors/packet-rpcrdma.c | ||
| 24 | +++ b/epan/dissectors/packet-rpcrdma.c | ||
| 25 | @@ -24,6 +24,7 @@ | ||
| 26 | #include <epan/addr_resolv.h> | ||
| 27 | |||
| 28 | #include "packet-rpcrdma.h" | ||
| 29 | +#include "packet-frame.h" | ||
| 30 | #include "packet-infiniband.h" | ||
| 31 | #include "packet-iwarp-ddp-rdmap.h" | ||
| 32 | |||
| 33 | @@ -285,6 +286,18 @@ void rpcrdma_insert_offset(gint offset) | ||
| 34 | wmem_array_append_one(gp_rdma_write_offsets, offset); | ||
| 35 | } | ||
| 36 | |||
| 37 | +/* | ||
| 38 | + * Reset the array of write offsets at the end of the frame. These | ||
| 39 | + * are packet scoped, so they don't need to be freed, but we want | ||
| 40 | + * to ensure that the global doesn't point to no longer allocated | ||
| 41 | + * memory in a later packet. | ||
| 42 | + */ | ||
| 43 | +static void | ||
| 44 | +reset_write_offsets(void) | ||
| 45 | +{ | ||
| 46 | + gp_rdma_write_offsets = NULL; | ||
| 47 | +} | ||
| 48 | + | ||
| 49 | /* Get conversation state, it is created if it does not exist */ | ||
| 50 | static rdma_conv_info_t *get_rdma_conv_info(packet_info *pinfo) | ||
| 51 | { | ||
| 52 | @@ -1600,6 +1613,7 @@ dissect_rpcrdma(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data | ||
| 53 | if (write_size > 0 && !pinfo->fd->visited) { | ||
| 54 | /* Initialize array of write chunk offsets */ | ||
| 55 | gp_rdma_write_offsets = wmem_array_new(wmem_packet_scope(), sizeof(gint)); | ||
| 56 | + register_frame_end_routine(pinfo, reset_write_offsets); | ||
| 57 | TRY { | ||
| 58 | /* | ||
| 59 | * Call the upper layer dissector to get a list of offsets | ||
| 60 | -- | ||
| 61 | GitLab | ||
| 62 | |||
