diff options
author | Jakub Zawadzki <darkjames-ws@darkjames.pl> | 2013-07-15 18:59:42 +0000 |
---|---|---|
committer | Jakub Zawadzki <darkjames-ws@darkjames.pl> | 2013-07-15 18:59:42 +0000 |
commit | 49b642ab1ce85909e92010601a7bcdadfcfb1a48 (patch) | |
tree | 826594b4d42a9dc38955494add98bfb33d781976 /epan/tvbuff_subset.c | |
parent | fec836d697436a3d62327a9c039f595b686619c1 (diff) | |
download | wireshark-49b642ab1ce85909e92010601a7bcdadfcfb1a48.tar.gz |
Fix bug #8934: Fuzz failure: seg-fault in tvb_new_proxy()
It is possible to have NULL reassembly data, support this case in tvb_new_proxy().
svn path=/trunk/; revision=50634
Diffstat (limited to 'epan/tvbuff_subset.c')
-rw-r--r-- | epan/tvbuff_subset.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/epan/tvbuff_subset.c b/epan/tvbuff_subset.c index f65b612842..b5034b3f12 100644 --- a/epan/tvbuff_subset.c +++ b/epan/tvbuff_subset.c @@ -226,7 +226,12 @@ tvb_new_subset_remaining(tvbuff_t *backing, const gint backing_offset) tvbuff_t * tvb_new_proxy(tvbuff_t *backing) { - tvbuff_t *tvb = tvb_new_with_subset(backing, backing->reported_length, 0, backing->length); + tvbuff_t *tvb; + + if (backing) + tvb = tvb_new_with_subset(backing, backing->reported_length, 0, backing->length); + else + tvb = tvb_new_real_data(NULL, 0, 0); tvb->ds_tvb = tvb; |