aboutsummaryrefslogtreecommitdiffstats
path: root/sharkd_session.c
diff options
context:
space:
mode:
authorJakub Zawadzki <darkjames-ws@darkjames.pl>2018-01-19 19:06:10 +0100
committerJakub Zawadzki <darkjames-ws@darkjames.pl>2018-01-24 02:15:49 +0000
commit958ef99edf4d32acb8db5878fa8f7eed4acd26e4 (patch)
tree24b5edfd695f6ccc57d969a70d54ce14d5f61894 /sharkd_session.c
parent787b93fd071e1537b33e8d2f894bbc3cc0ed5595 (diff)
sharkd: try to fix clang uninitialized value stored to field 'protocol'.
Instead of using g_memdup(), make it more C-like. Change-Id: Ifde75801a261f9e269391fabf323f34a4e3508ac Reviewed-on: https://code.wireshark.org/review/25395 Petri-Dish: Jakub Zawadzki <darkjames-ws@darkjames.pl> Tested-by: Petri Dish Buildbot Reviewed-by: Michael Mann <mmann78@netscape.net> Reviewed-by: Jakub Zawadzki <darkjames-ws@darkjames.pl>
Diffstat (limited to 'sharkd_session.c')
-rw-r--r--sharkd_session.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/sharkd_session.c b/sharkd_session.c
index ba3a528d52..08b3e44696 100644
--- a/sharkd_session.c
+++ b/sharkd_session.c
@@ -1103,11 +1103,14 @@ sharkd_session_packet_tap_expert_cb(void *tapdata, packet_info *pinfo _U_, epan_
const expert_info_t *ei = (const expert_info_t *) pointer;
expert_info_t *ei_copy;
- /* Note: this is a shallow copy */
- ei_copy = (expert_info_t *) g_memdup(ei, sizeof(*ei));
- if (ei_copy == NULL)
+ if (ei == NULL)
return FALSE;
+ ei_copy = g_new(expert_info_t, 1);
+ /* Note: this is a shallow copy */
+ *ei_copy = *ei;
+
+ /* ei->protocol, ei->summary might be allocated in packet scope, make a copy. */
ei_copy->protocol = g_string_chunk_insert_const(etd->text, ei_copy->protocol);
ei_copy->summary = g_string_chunk_insert_const(etd->text, ei_copy->summary);