aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2012-08-18 19:22:22 +0000
committerMichael Mann <mmann78@netscape.net>2012-08-18 19:22:22 +0000
commit296871713f3132becef798f94281cfc017c3d9ac (patch)
tree5bb97583b2b9f39f07e630a0c99e5e55a07432cc
parent493516fd6c3d70732d409ae940159ef5103ad753 (diff)
make hash key session scoped
cleanup g_snprintf svn path=/trunk/; revision=44565
-rw-r--r--asn1/ansi_map/packet-ansi_map-template.c23
-rw-r--r--asn1/ansi_tcap/packet-ansi_tcap-template.c19
-rw-r--r--epan/dissectors/packet-ansi_map.c29
-rw-r--r--epan/dissectors/packet-ansi_tcap.c25
4 files changed, 24 insertions, 72 deletions
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
@@ -380,25 +380,14 @@ static void dissect_ansi_map_win_trigger_list(tvbuff_t *tvb, packet_info *pinfo
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
@@ -165,19 +165,10 @@ 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);
diff --git a/epan/dissectors/packet-ansi_map.c b/epan/dissectors/packet-ansi_map.c
index 001085463e..d52e5af670 100644
--- a/epan/dissectors/packet-ansi_map.c
+++ b/epan/dissectors/packet-ansi_map.c
@@ -1168,25 +1168,14 @@ static void dissect_ansi_map_win_trigger_list(tvbuff_t *tvb, packet_info *pinfo
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
@@ -1204,9 +1193,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);
@@ -1219,13 +1206,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 */
@@ -1238,7 +1225,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);*/
@@ -15473,7 +15460,7 @@ dissect_ansi_map_ReturnData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
/*--- End of included file: packet-ansi_map-fn.c ---*/
-#line 3599 "../../asn1/ansi_map/packet-ansi_map-template.c"
+#line 3586 "../../asn1/ansi_map/packet-ansi_map-template.c"
/*
* 6.5.2.dk N.S0013-0 v 1.0,X.S0004-550-E v1.0 2.301
@@ -19319,7 +19306,7 @@ void proto_register_ansi_map(void) {
NULL, HFILL }},
/*--- End of included file: packet-ansi_map-hfarr.c ---*/
-#line 5252 "../../asn1/ansi_map/packet-ansi_map-template.c"
+#line 5239 "../../asn1/ansi_map/packet-ansi_map-template.c"
};
/* List of subtrees */
@@ -19580,7 +19567,7 @@ void proto_register_ansi_map(void) {
&ett_ansi_map_ReturnData,
/*--- End of included file: packet-ansi_map-ettarr.c ---*/
-#line 5285 "../../asn1/ansi_map/packet-ansi_map-template.c"
+#line 5272 "../../asn1/ansi_map/packet-ansi_map-template.c"
};
static enum_val_t ansi_map_response_matching_type_values[] = {
diff --git a/epan/dissectors/packet-ansi_tcap.c b/epan/dissectors/packet-ansi_tcap.c
index 9dcf8d874b..fc7f6dabd0 100644
--- a/epan/dissectors/packet-ansi_tcap.c
+++ b/epan/dissectors/packet-ansi_tcap.c
@@ -256,19 +256,10 @@ 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;
}
@@ -295,17 +286,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;
}
@@ -320,7 +309,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);
@@ -1405,7 +1394,7 @@ dissect_ansi_tcap_PackageType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
/*--- End of included file: packet-ansi_tcap-fn.c ---*/
-#line 363 "../../asn1/ansi_tcap/packet-ansi_tcap-template.c"
+#line 352 "../../asn1/ansi_tcap/packet-ansi_tcap-template.c"
@@ -1751,7 +1740,7 @@ proto_register_ansi_tcap(void)
NULL, HFILL }},
/*--- End of included file: packet-ansi_tcap-hfarr.c ---*/
-#line 500 "../../asn1/ansi_tcap/packet-ansi_tcap-template.c"
+#line 489 "../../asn1/ansi_tcap/packet-ansi_tcap-template.c"
};
/* Setup protocol subtree array */
@@ -1789,7 +1778,7 @@ proto_register_ansi_tcap(void)
&ett_ansi_tcap_T_paramSet,
/*--- End of included file: packet-ansi_tcap-ettarr.c ---*/
-#line 511 "../../asn1/ansi_tcap/packet-ansi_tcap-template.c"
+#line 500 "../../asn1/ansi_tcap/packet-ansi_tcap-template.c"
};
static enum_val_t ansi_tcap_response_matching_type_values[] = {