aboutsummaryrefslogtreecommitdiffstats
path: root/wiretap
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2016-02-26 16:19:56 -0500
committerMichael Mann <mmann78@netscape.net>2016-02-26 23:29:52 +0000
commita7c44b79732cf7823906fd7f6d880f578247d209 (patch)
tree3a175042f2f162af6453157c8824d485facac8d9 /wiretap
parentc5c10581b67167add2c874033d2e37c8c07fac70 (diff)
Ensure we have a name resolution block when parsing its block type.
Bug: 12174 Change-Id: I82eb0ac75f2e03f15c2f016e9b7ff72fdc7044f5 Reviewed-on: https://code.wireshark.org/review/14179 Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'wiretap')
-rw-r--r--wiretap/pcapng.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/wiretap/pcapng.c b/wiretap/pcapng.c
index 13ebe557ee..55414e6e98 100644
--- a/wiretap/pcapng.c
+++ b/wiretap/pcapng.c
@@ -1609,7 +1609,7 @@ name_resolution_block_find_name_end(const char *p, guint record_len, int *err,
}
static gboolean
-pcapng_read_name_resolution_block(FILE_T fh, pcapng_block_header_t *bh, pcapng_t *pn, wtapng_block_t *wblock _U_,int *err, gchar **err_info)
+pcapng_read_name_resolution_block(FILE_T fh, pcapng_block_header_t *bh, pcapng_t *pn, wtapng_block_t *wblock, int *err, gchar **err_info)
{
int block_read;
int to_read;
@@ -1659,6 +1659,11 @@ pcapng_read_name_resolution_block(FILE_T fh, pcapng_block_header_t *bh, pcapng_t
pcapng_debug("pcapng_read_name_resolution_block, total %d bytes", bh->block_total_length);
+ /* Ensure we have a name resolution block */
+ if (wblock->block == NULL) {
+ wblock->block = wtap_optionblock_create(WTAP_OPTION_BLOCK_NG_NRB);
+ }
+
/*
* Start out with a buffer big enough for an IPv6 address and one
* 64-byte name; we'll make the buffer bigger if necessary.