summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--wiretap/file_access.c14
-rw-r--r--wiretap/wtap.c1
-rw-r--r--wiretap/wtap.h2
3 files changed, 17 insertions, 0 deletions
diff --git a/wiretap/file_access.c b/wiretap/file_access.c
index 329e5875b4..5b3e75ea61 100644
--- a/wiretap/file_access.c
+++ b/wiretap/file_access.c
@@ -2718,6 +2718,20 @@ wtap_dump_file_tell(wtap_dumper *wdh, int *err)
}
}
+void
+cleanup_open_routines(void)
+{
+ guint i;
+ struct open_info *i_open;
+
+ for (i = 0, i_open = open_routines; i < open_info_arr->len; i++, i_open++) {
+ if (i_open->extensions != NULL)
+ g_strfreev(i_open->extensions_set);
+ }
+
+ g_array_free(open_info_arr, TRUE);
+}
+
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
diff --git a/wiretap/wtap.c b/wiretap/wtap.c
index 6473d43ee9..0f13e6b788 100644
--- a/wiretap/wtap.c
+++ b/wiretap/wtap.c
@@ -1444,6 +1444,7 @@ wtap_cleanup(void)
wtap_cleanup_encap_types();
wtap_opttypes_cleanup();
ws_buffer_cleanup();
+ cleanup_open_routines();
}
/*
diff --git a/wiretap/wtap.h b/wiretap/wtap.h
index d1ed5d7577..c94371a854 100644
--- a/wiretap/wtap.h
+++ b/wiretap/wtap.h
@@ -1448,6 +1448,8 @@ typedef enum {
WS_DLL_PUBLIC void init_open_routines(void);
+void cleanup_open_routines(void);
+
struct open_info {
const char *name;
wtap_open_type type;