From 296871713f3132becef798f94281cfc017c3d9ac Mon Sep 17 00:00:00 2001 From: Michael Mann Date: Sat, 18 Aug 2012 19:22:22 +0000 Subject: make hash key session scoped cleanup g_snprintf svn path=/trunk/; revision=44565 --- asn1/ansi_map/packet-ansi_map-template.c | 23 +++++------------------ asn1/ansi_tcap/packet-ansi_tcap-template.c | 19 ++++--------------- 2 files changed, 9 insertions(+), 33 deletions(-) (limited to 'asn1') diff --git a/asn1/ansi_map/packet-ansi_map-template.c b/asn1/ansi_map/packet-ansi_map-template.c index 9748c9f399..d15c150073 100644 --- a/asn1/ansi_map/packet-ansi_map-template.c +++ b/asn1/ansi_map/packet-ansi_map-template.c @@ -379,26 +379,15 @@ static void dissect_ansi_map_win_trigger_list(tvbuff_t *tvb, packet_info *pinfo /* Transaction table */ static GHashTable *TransactionId_table=NULL; -static void -TransactionId_table_cleanup(gpointer key, gpointer value _U_, gpointer user_data _U_){ - - gchar *TransactionId_str = (gchar *)key; - - g_free(TransactionId_str); - -} - static void ansi_map_init_transaction_table(void){ /* Destroy any existing memory chunks / hashes. */ if (TransactionId_table){ - g_hash_table_foreach(TransactionId_table, TransactionId_table_cleanup, NULL); g_hash_table_destroy(TransactionId_table); } TransactionId_table = g_hash_table_new(g_str_hash, g_str_equal); - } static void @@ -416,9 +405,7 @@ update_saved_invokedata(packet_info *pinfo, proto_tree *tree _U_, tvbuff_t *tvb address* dst = &(pinfo->dst); guint8 *src_str; guint8 *dst_str; - char *buf; - - buf=ep_alloc(1024); + char *buf = NULL; src_str = ep_address_to_str(src); dst_str = ep_address_to_str(dst); @@ -431,13 +418,13 @@ update_saved_invokedata(packet_info *pinfo, proto_tree *tree _U_, tvbuff_t *tvb /* The hash string needs to contain src and dest to distiguish differnt flows */ switch(ansi_map_response_matching_type){ case ANSI_MAP_TID_ONLY: - g_snprintf(buf,1024,"%s",p_private_tcap->TransactionID_str); + buf = ep_strdup(p_private_tcap->TransactionID_str); break; case 1: - g_snprintf(buf,1024,"%s%s",p_private_tcap->TransactionID_str,src_str); + buf = ep_strdup_printf("%s%s",p_private_tcap->TransactionID_str,src_str); break; default: - g_snprintf(buf,1024,"%s%s%s",p_private_tcap->TransactionID_str,src_str,dst_str); + buf = ep_strdup_printf("%s%s%s",p_private_tcap->TransactionID_str,src_str,dst_str); break; } /* If the entry allready exists don't owervrite it */ @@ -450,7 +437,7 @@ update_saved_invokedata(packet_info *pinfo, proto_tree *tree _U_, tvbuff_t *tvb ansi_map_saved_invokedata->ServiceIndicator = ServiceIndicator; g_hash_table_insert(TransactionId_table, - g_strdup(buf), + se_strdup(buf), ansi_map_saved_invokedata); /*g_warning("Invoke Hash string %s pkt: %u",buf,pinfo->fd->num);*/ diff --git a/asn1/ansi_tcap/packet-ansi_tcap-template.c b/asn1/ansi_tcap/packet-ansi_tcap-template.c index e46797d4e0..31923d8586 100644 --- a/asn1/ansi_tcap/packet-ansi_tcap-template.c +++ b/asn1/ansi_tcap/packet-ansi_tcap-template.c @@ -164,20 +164,11 @@ struct ansi_tcap_invokedata_t { static GHashTable *TransactionId_table=NULL; -static void -TransactionId_table_cleanup(gpointer key, gpointer value _U_, gpointer user_data _U_){ - - gchar *TransactionId_str = (gchar *)key; - - g_free(TransactionId_str); -} - static void ansi_tcap_init_transaction_table(void){ /* Destroy any existing memory chunks / hashes. */ if (TransactionId_table){ - g_hash_table_foreach(TransactionId_table, TransactionId_table_cleanup, NULL); g_hash_table_destroy(TransactionId_table); TransactionId_table = NULL; } @@ -204,17 +195,15 @@ save_invoke_data(packet_info *pinfo, proto_tree *tree _U_, tvbuff_t *tvb _U_){ /* Only do this once XXX I hope its the right thing to do */ /* The hash string needs to contain src and dest to distiguish differnt flows */ - buf = ep_alloc(MAX_TID_STR_LEN); - buf[0] = '\0'; switch(ansi_tcap_response_matching_type){ case 0: - g_snprintf(buf,MAX_TID_STR_LEN,"%s",ansi_tcap_private.TransactionID_str); + buf = ep_strdup(ansi_tcap_private.TransactionID_str); break; case 1: - g_snprintf(buf,MAX_TID_STR_LEN,"%s%s",ansi_tcap_private.TransactionID_str,ep_address_to_str(src)); + buf = ep_strdup_printf("%s%s",ansi_tcap_private.TransactionID_str,ep_address_to_str(src)); break; default: - g_snprintf(buf,MAX_TID_STR_LEN,"%s%s%s",ansi_tcap_private.TransactionID_str,ep_address_to_str(src),ep_address_to_str(dst)); + buf = ep_strdup_printf("%s%s%s",ansi_tcap_private.TransactionID_str,ep_address_to_str(src),ep_address_to_str(dst)); break; } @@ -229,7 +218,7 @@ save_invoke_data(packet_info *pinfo, proto_tree *tree _U_, tvbuff_t *tvb _U_){ ansi_tcap_saved_invokedata->OperationCode_private = ansi_tcap_private.d.OperationCode_private; g_hash_table_insert(TransactionId_table, - g_strdup(buf), + se_strdup(buf), ansi_tcap_saved_invokedata); /* g_warning("Tcap Invoke Hash string %s",buf); -- cgit v1.2.3