From 70cac937e8e090ce312d96af7873eae091c94c43 Mon Sep 17 00:00:00 2001 From: Chris Maynard Date: Tue, 16 Jul 2013 15:37:06 +0000 Subject: Fix Coverity CID 1050093: Dereference before null check. svn path=/trunk/; revision=50668 --- frame_tvbuff.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'frame_tvbuff.c') diff --git a/frame_tvbuff.c b/frame_tvbuff.c index 124fd094f3..0a3652a17a 100644 --- a/frame_tvbuff.c +++ b/frame_tvbuff.c @@ -145,8 +145,8 @@ frame_pbrk_guint8(tvbuff_t *tvb, guint abs_offset, guint limit, const guint8 *ne static gsize frame_sizeof(void) -{ - return sizeof(struct tvb_frame); +{ + return sizeof(struct tvb_frame); } static guint @@ -196,13 +196,19 @@ frame_tvbuff_new(const frame_data *fd, const guint8 *buf) * * For now, we clip the reported length at G_MAXINT * - * (XXX, is this still a problem?) There was an exception when we call + * (XXX, is this still a problem?) There was an exception when we call * tvb_new_real_data() now there's no one */ tvb->real_data = buf; - tvb->length = fd->cap_len; - tvb->reported_length = fd->pkt_len > G_MAXINT ? G_MAXINT : fd->pkt_len; + if (fd) { + tvb->length = fd->cap_len; + tvb->reported_length = fd->pkt_len > G_MAXINT ? G_MAXINT : fd->pkt_len; + } else { + tvb->length = 0; + tvb->reported_length = 0; + } + tvb->initialized = TRUE; /* -- cgit v1.2.3