diff options
author | João Valverde <joao.valverde@tecnico.ulisboa.pt> | 2015-11-26 04:44:52 +0000 |
---|---|---|
committer | João Valverde <j@v6e.pt> | 2016-02-26 23:09:43 +0000 |
commit | e4c059f67f3b29bcc26b1faf111bf647ac630e04 (patch) | |
tree | 8ec634d7614f7a32c09c5cdb60d7509fc2dd2208 /epan/dissectors/packet-dcerpc.c | |
parent | 92537916483ec721a638cdd7c416d099a45a9304 (diff) |
Add free_address_wmem(), fix warnings [-Wcast-qual]
Try to improve address API and also fix some constness warnings
by not overloading the 'data' pointer to store malloc'ed buffers
(use private pointer for that instead).
Second try, now passing test suite.
Change-Id: Idc101cd866b6d4f13500c9d59da5c7a38847fb7f
Reviewed-on: https://code.wireshark.org/review/13946
Petri-Dish: João Valverde <j@v6e.pt>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: João Valverde <j@v6e.pt>
Diffstat (limited to 'epan/dissectors/packet-dcerpc.c')
-rw-r--r-- | epan/dissectors/packet-dcerpc.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/epan/dissectors/packet-dcerpc.c b/epan/dissectors/packet-dcerpc.c index c116ef6e1c..cc41270723 100644 --- a/epan/dissectors/packet-dcerpc.c +++ b/epan/dissectors/packet-dcerpc.c @@ -797,8 +797,8 @@ decode_dcerpc_binding_free(void *binding_in) { decode_dcerpc_bind_values_t *binding = (decode_dcerpc_bind_values_t *)binding_in; - g_free((void *) binding->addr_a.data); - g_free((void *) binding->addr_b.data); + free_address(&binding->addr_a); + free_address(&binding->addr_b); if (binding->ifname) g_string_free(binding->ifname, TRUE); g_free(binding); @@ -962,8 +962,8 @@ decode_dcerpc_binding_reset(const char *name _U_, gconstpointer pattern) decode_dcerpc_bindings = g_slist_remove(decode_dcerpc_bindings, le->data); - g_free((void *) old_binding->addr_a.data); - g_free((void *) old_binding->addr_b.data); + free_address(&old_binding->addr_a); + free_address(&old_binding->addr_b); g_string_free(old_binding->ifname, TRUE); g_free(old_binding); return FALSE; @@ -1082,8 +1082,8 @@ dcerpc_fragment_temporary_key(const packet_info *pinfo, const guint32 id, dcerpc_fragment_key *key = g_slice_new(dcerpc_fragment_key); const e_dce_dg_common_hdr_t *hdr = (const e_dce_dg_common_hdr_t *)data; - key->src = pinfo->src; - key->dst = pinfo->dst; + copy_address_shallow(&key->src, &pinfo->src); + copy_address_shallow(&key->dst, &pinfo->dst); key->id = id; key->act_id = hdr->act_id; @@ -1124,8 +1124,8 @@ dcerpc_fragment_free_persistent_key(gpointer ptr) /* * Free up the copies of the addresses from the old key. */ - g_free((gpointer)key->src.data); - g_free((gpointer)key->dst.data); + free_address(&key->src); + free_address(&key->dst); g_slice_free(dcerpc_fragment_key, key); } |