diff options
author | Jakub Zawadzki <darkjames-ws@darkjames.pl> | 2018-01-19 19:06:10 +0100 |
---|---|---|
committer | Jakub Zawadzki <darkjames-ws@darkjames.pl> | 2018-01-24 02:15:49 +0000 |
commit | 958ef99edf4d32acb8db5878fa8f7eed4acd26e4 (patch) | |
tree | 24b5edfd695f6ccc57d969a70d54ce14d5f61894 /sharkd_session.c | |
parent | 787b93fd071e1537b33e8d2f894bbc3cc0ed5595 (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.c | 9 |
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); |