aboutsummaryrefslogtreecommitdiffstats
path: root/epan/proto.h
diff options
context:
space:
mode:
authorStig Bjørlykke <stig@bjorlykke.org>2014-11-06 11:19:25 +0100
committerStig Bjørlykke <stig@bjorlykke.org>2014-11-10 08:01:12 +0000
commitea167053ffc553b3a5f4ce6cbe0b78ecc8cd0dbe (patch)
treeceac2e98230e01eaf207a51ab98bd57afdddcead /epan/proto.h
parentd58567bd78abc1903191c9a955365b8d41f09496 (diff)
Improved deregistering fields.
This improvement avoids use of deallocated memory (crash) if using a deregistered field in display filter, color filter, custom column and other cases when the field is used as "interesting field". This functionality is currently used in http, imf and ldap preferences. Also removed unused proto_registrar_n() as this does not work correctly after deregistering fields. Change-Id: I043e3bf7a98bd773c9801e712a012d1eab8a7f94 Reviewed-on: https://code.wireshark.org/review/5161 Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org> Tested-by: Stig Bjørlykke <stig@bjorlykke.org>
Diffstat (limited to 'epan/proto.h')
-rw-r--r--epan/proto.h15
1 files changed, 10 insertions, 5 deletions
diff --git a/epan/proto.h b/epan/proto.h
index 01d53506ab..70ffa5607d 100644
--- a/epan/proto.h
+++ b/epan/proto.h
@@ -1919,20 +1919,25 @@ proto_register_field_array(const int parent, hf_register_info *hf, const int num
/** Unregister an already registered field.
@param parent the protocol handle from proto_register_protocol()
- @param hf_id the field to unregister */
+ @param hf_id the field to deregister */
WS_DLL_PUBLIC void
proto_unregister_field (const int parent, gint hf_id);
+/** Add data to be freed when deregistered fields are freed.
+ @param data a pointer to data to free */
+WS_DLL_PUBLIC void
+proto_add_deregistered_data (void *data);
+
+/** Free fields deregistered in proto_unregister_field(). */
+WS_DLL_PUBLIC void
+proto_free_deregistered_fields (void);
+
/** Register a protocol subtree (ett) array.
@param indices array of ett indices
@param num_indices the number of records in indices */
WS_DLL_PUBLIC void
proto_register_subtree_array(gint *const *indices, const int num_indices);
-/** Returns number of items (protocols or header fields) registered.
- @return the number of items */
-WS_DLL_PUBLIC int proto_registrar_n(void);
-
/** Get name of registered header_field number n.
@param n item # n (0-indexed)
@return the name of this registered item */