diff options
author | Pascal Quantin <pascal.quantin@gmail.com> | 2016-05-31 16:11:41 +0200 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2016-05-31 16:53:41 +0000 |
commit | 35feab8a4a43013f1a06374194ec93d4e64959b6 (patch) | |
tree | a0c8758ed083dced16813939d8393b6e42421117 /epan/tvbuff_composite.c | |
parent | 0ea05962e2d22fce5f666f863f0cdc57520b1216 (diff) |
Fix display of composite tvbs in GUI
a composite tvb is the top-level data source tvb
fix composite_get_ptr function
Change-Id: Ibab58801a754fd88fb86b9a13804bccf2ad51c7a
Reviewed-on: https://code.wireshark.org/review/15643
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/tvbuff_composite.c')
-rw-r--r-- | epan/tvbuff_composite.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/epan/tvbuff_composite.c b/epan/tvbuff_composite.c index f43628b96a..1926a3e626 100644 --- a/epan/tvbuff_composite.c +++ b/epan/tvbuff_composite.c @@ -112,8 +112,10 @@ composite_get_ptr(tvbuff_t *tvb, guint abs_offset, guint abs_length) return tvb_get_ptr(member_tvb, member_offset, abs_length); } else { - tvb->real_data = (guint8 *)g_malloc(abs_length); - tvb_memcpy(tvb, (void *)tvb->real_data, 0, abs_length); + /* Use a temporary variable as tvb_memcpy is also checking tvb->real_data pointer */ + void *real_data = g_malloc(abs_length); + tvb_memcpy(tvb, real_data, 0, abs_length); + tvb->real_data = (const guint8 *)real_data; return tvb->real_data + abs_offset; } @@ -296,6 +298,7 @@ tvb_composite_finalize(tvbuff_t *tvb) tvb_add_to_chain((tvbuff_t *)composite->tvbs->data, tvb); /* chain composite tvb to first member */ tvb->initialized = TRUE; + tvb->ds_tvb = tvb; } /* |