Use val_to_str_const().
[obnox/wireshark/wip.git] / epan / gcp.c
index 3d7441867535c577dd1f8c772a9492d68ee11a3d..651cf862e8094ebde1b2bc028671b849114587fa 100644 (file)
@@ -281,7 +281,9 @@ gcp_ctx_t* gcp_ctx(gcp_msg_t* m, gcp_trx_t* t, guint32 c_id, gboolean persistent
                 if (( context = se_tree_lookup32_array(ctxs_by_trx,trx_key) )) {
                     if (( context_p = se_tree_lookup32_array(ctxs,ctx_key) )) {
                         if (context != *context_p) {
-                            context = se_alloc(sizeof(gcp_ctx_t));
+                            if(context->id != CHOOSE_CONTEXT) {
+                                context = se_alloc(sizeof(gcp_ctx_t));
+                            }
                             context->initial = m;
                             context->id = c_id;
                             context->cmds = NULL;
@@ -744,9 +746,10 @@ void gcp_analyze_msg(proto_tree* gcp_tree, tvbuff_t* gcp_tvb, gcp_msg_t* m, gcp_
                     }
 
                     if (ctx_term->term->bir && ctx_term->term->nsap) {
-                        gchar* key = ep_strdup_printf("%s:%s",ctx_term->term->nsap,ctx_term->term->bir);
-                        g_ascii_strdown(key, -1);
+                        gchar* tmp_key = ep_strdup_printf("%s:%s",ctx_term->term->nsap,ctx_term->term->bir);
+                        gchar* key = g_ascii_strdown(tmp_key, -1);
                         alcap_tree_from_bearer_key(term_tree, gcp_tvb, key);
+                        g_free(key);
                     }
                 }
             }