summaryrefslogtreecommitdiff
path: root/file.c
diff options
context:
space:
mode:
authorRichard Sharpe <sharpe@ns.aus.com>2000-09-11 07:33:56 +0000
committerRichard Sharpe <sharpe@ns.aus.com>2000-09-11 07:33:56 +0000
commitbf98417be05a76e93fd3976fef85110be51be780 (patch)
tree011a697a670cc07db6fe94c72269b9c33a765ea6 /file.c
parent332d5715e8898cc1552aa95847b93166d5478f5e (diff)
downloadwireshark-bf98417be05a76e93fd3976fef85110be51be780.tar.gz
We have to free up the per-frame data when we rescan, because we have
called packet_init_proto, which blows away the items the list points to. svn path=/trunk/; revision=2408
Diffstat (limited to 'file.c')
-rw-r--r--file.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/file.c b/file.c
index 74d4e431bf..2a8eaeb675 100644
--- a/file.c
+++ b/file.c
@@ -1,7 +1,7 @@
/* file.c
* File I/O routines
*
- * $Id: file.c,v 1.217 2000/09/10 06:44:33 guy Exp $
+ * $Id: file.c,v 1.218 2000/09/11 07:33:55 sharpe Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -981,6 +981,15 @@ rescan_packets(capture_file *cf, const char *action, gboolean refilter,
fdata->pfd = NULL;
}
+ /* If there is any per-frame data, delete that, as what it points to
+ * has gone as well.
+ */
+
+ if (fdata->pfd) {
+ g_slist_free(fdata->pfd);
+ fdata->pfd = NULL;
+ }
+
wtap_seek_read (cf->wth, fdata->file_off, &cf->pseudo_header,
cf->pd, fdata->cap_len);