diff options
author | Michael Mann <mmann78@netscape.net> | 2016-02-26 17:10:02 -0500 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2016-03-01 14:00:53 +0000 |
commit | 64a5cd9ce0e7e8ed1114dc86550e5888e70767e8 (patch) | |
tree | 1566f833741c91909c98892b6de18f2c5d4e3a75 /wiretap/pcapng.c | |
parent | e326e85a88967760d47aba5029cb70449d9d6e28 (diff) | |
download | wireshark-64a5cd9ce0e7e8ed1114dc86550e5888e70767e8.tar.gz |
Prevent use-after-free issues with pcapng.c/wtap_opttypes.c
Bug: 12173
Change-Id: Ifff28491073d50e088b26847830a3bc8835f4282
Reviewed-on: https://code.wireshark.org/review/14180
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'wiretap/pcapng.c')
-rw-r--r-- | wiretap/pcapng.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/wiretap/pcapng.c b/wiretap/pcapng.c index 55414e6e98..0d070c6b12 100644 --- a/wiretap/pcapng.c +++ b/wiretap/pcapng.c @@ -2487,6 +2487,7 @@ pcapng_open(wtap *wth, int *err, gchar **err_info) case PCAPNG_BLOCK_NOT_SHB: /* An error indicating that this isn't a pcap-ng file. */ wtap_optionblock_free(wblock.block); + wblock.block = NULL; *err = 0; *err_info = NULL; return WTAP_OPEN_NOT_MINE; @@ -2494,6 +2495,7 @@ pcapng_open(wtap *wth, int *err, gchar **err_info) case PCAPNG_BLOCK_ERROR: /* An I/O error, or this probably *is* a pcap-ng file but not a valid one. */ wtap_optionblock_free(wblock.block); + wblock.block = NULL; return WTAP_OPEN_ERROR; } @@ -2506,6 +2508,7 @@ pcapng_open(wtap *wth, int *err, gchar **err_info) */ pcapng_debug("pcapng_open: first block type %u not SHB", wblock.type); wtap_optionblock_free(wblock.block); + wblock.block = NULL; return WTAP_OPEN_NOT_MINE; } pn.shb_read = TRUE; @@ -2561,10 +2564,12 @@ pcapng_open(wtap *wth, int *err, gchar **err_info) if (*err == 0) { pcapng_debug("No more IDBs available..."); wtap_optionblock_free(wblock.block); + wblock.block = NULL; break; } else { pcapng_debug("pcapng_open: couldn't read IDB"); wtap_optionblock_free(wblock.block); + wblock.block = NULL; return WTAP_OPEN_ERROR; } } |