aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2012-08-14 17:58:41 +0000
committerMichael Mann <mmann78@netscape.net>2012-08-14 17:58:41 +0000
commit5dd7371960f02a33d50faf2f7202792c1da9a042 (patch)
tree1ac87d0599ef4502e570979022e1f8db4ddacf95
parentc8a48320502996cd41f893ff74e9fa091aa2ff3e (diff)
more ephemeral memory cleanup
svn path=/trunk/; revision=44496
-rw-r--r--epan/dissectors/packet-ber.c27
-rw-r--r--epan/dissectors/packet-fw1.c11
-rw-r--r--epan/dissectors/packet-http.c11
-rw-r--r--epan/dissectors/packet-ieee80211.c6
-rw-r--r--epan/dissectors/packet-mq.c9
-rw-r--r--epan/dissectors/packet-multipart.c7
-rw-r--r--epan/dissectors/packet-nfs.c3
-rw-r--r--epan/dissectors/packet-quakeworld.c7
-rw-r--r--epan/dissectors/packet-rlc.c3
-rw-r--r--epan/dissectors/packet-ssl.c4
-rw-r--r--epan/dissectors/packet-uaudp.c2
11 files changed, 30 insertions, 60 deletions
diff --git a/epan/dissectors/packet-ber.c b/epan/dissectors/packet-ber.c
index 55fcf2beff..179a513ff4 100644
--- a/epan/dissectors/packet-ber.c
+++ b/epan/dissectors/packet-ber.c
@@ -4266,7 +4266,7 @@ dissect_ber_UTCTime(gboolean implicit_tag, asn1_ctx_t *actx, proto_tree *tree, t
}
if (len < 10 || len > 19) {
- error_str = g_strdup_printf("BER Error: UTCTime invalid length: %u", len);
+ error_str = ep_strdup_printf("BER Error: UTCTime invalid length: %u", len);
instr = tvb_get_ephemeral_string(tvb, offset, len > 19 ? 19 : len);
goto malformed;
}
@@ -4276,8 +4276,8 @@ dissect_ber_UTCTime(gboolean implicit_tag, asn1_ctx_t *actx, proto_tree *tree, t
/* YYMMDDhhmm */
for(i=0;i<10;i++) {
if(instr[i] < '0' || instr[i] > '9') {
- error_str = g_strdup("BER Error: malformed UTCTime encoding, "
- "first 10 octets have to contain YYMMDDhhmm in digits");
+ error_str = "BER Error: malformed UTCTime encoding, "
+ "first 10 octets have to contain YYMMDDhhmm in digits";
goto malformed;
}
}
@@ -4293,9 +4293,9 @@ dissect_ber_UTCTime(gboolean implicit_tag, asn1_ctx_t *actx, proto_tree *tree, t
g_snprintf(outstrptr, 4, ":%.2s", instr+10);
outstrptr+=3;
} else {
- error_str = g_strdup("BER Error: malformed UTCTime encoding, "
+ error_str = "BER Error: malformed UTCTime encoding, "
"if 11th octet is a digit for seconds, "
- "the 12th octet has to be a digit, too");
+ "the 12th octet has to be a digit, too";
goto malformed;
}
}
@@ -4305,8 +4305,8 @@ dissect_ber_UTCTime(gboolean implicit_tag, asn1_ctx_t *actx, proto_tree *tree, t
switch (instr[i]) {
case 'Z':
if(len!=i+1) {
- error_str = g_strdup("BER Error: malformed UTCTime encoding, "
- "there must be no further octets after \'Z\'");
+ error_str = "BER Error: malformed UTCTime encoding, "
+ "there must be no further octets after \'Z\'";
goto malformed;
}
g_snprintf(outstrptr, 7, " (UTC)");
@@ -4315,14 +4315,14 @@ dissect_ber_UTCTime(gboolean implicit_tag, asn1_ctx_t *actx, proto_tree *tree, t
case '-':
case '+':
if(len!=i+5) {
- error_str = g_strdup("BER Error: malformed UTCTime encoding, "
- "4 digits must follow on \'+\' resp. \'-\'");
+ error_str = "BER Error: malformed UTCTime encoding, "
+ "4 digits must follow on \'+\' resp. \'-\'";
goto malformed;
}
for(n=i+1;n<i+5;n++) {
if(instr[n] < '0' || instr[n] > '9') {
- error_str = g_strdup("BER Error: malformed UTCTime encoding, "
- "4 digits must follow on \'+\' resp. \'-\'");
+ error_str = "BER Error: malformed UTCTime encoding, "
+ "4 digits must follow on \'+\' resp. \'-\'";
goto malformed;
}
}
@@ -4330,7 +4330,7 @@ dissect_ber_UTCTime(gboolean implicit_tag, asn1_ctx_t *actx, proto_tree *tree, t
i+=5;
break;
default:
- error_str = g_strdup_printf("BER Error: malformed UTCTime encoding, "
+ error_str = ep_strdup_printf("BER Error: malformed UTCTime encoding, "
"unexpected character in %dth octet, "
"must be \'Z\', \'+\' or \'-\'", i+1);
goto malformed;
@@ -4338,7 +4338,7 @@ dissect_ber_UTCTime(gboolean implicit_tag, asn1_ctx_t *actx, proto_tree *tree, t
}
if(len!=i) {
- error_str = g_strdup_printf("BER Error: malformed UTCTime encoding, "
+ error_str = ep_strdup_printf("BER Error: malformed UTCTime encoding, "
"%d unexpected character%s after %dth octet",
len-i, (len==i-1?"s":""), i);
goto malformed;
@@ -4359,7 +4359,6 @@ malformed:
cause = proto_tree_add_string_format(error_tree, hf_ber_error, tvb, offset, len, "invalid_utctime", "%s", error_str);
expert_add_info_format(actx->pinfo, cause, PI_MALFORMED, PI_WARN, "BER Error: malformed UTCTime encoding");
- g_free (error_str);
return offset+len;
}
diff --git a/epan/dissectors/packet-fw1.c b/epan/dissectors/packet-fw1.c
index 4d9d180a5d..022f280d8b 100644
--- a/epan/dissectors/packet-fw1.c
+++ b/epan/dissectors/packet-fw1.c
@@ -114,17 +114,12 @@ static gint ett_fw1 = -1;
#define ETH_HEADER_SIZE 14
#define MAX_INTERFACES 20
-static char *p_interfaces[MAX_INTERFACES];
+static gchar *p_interfaces[MAX_INTERFACES];
static int interface_anzahl=0;
static void
fw1_init(void)
{
- int i;
-
- for (i=0; i<interface_anzahl; i++) {
- g_free(p_interfaces[i]);
- }
interface_anzahl = 0;
}
@@ -176,7 +171,7 @@ dissect_fw1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
}
}
if (!found && interface_anzahl < MAX_INTERFACES) {
- p_interfaces[interface_anzahl] = g_strdup(interface_name);
+ p_interfaces[interface_anzahl] = se_strdup(interface_name);
interface_anzahl++;
}
@@ -278,7 +273,7 @@ proto_register_fw1(void)
register_dissector("fw1", dissect_fw1, proto_fw1);
- for (i=0; i<interface_anzahl; i++) {
+ for (i=0; i<MAX_INTERFACES; i++) {
p_interfaces[i] = NULL;
}
register_init_routine(fw1_init);
diff --git a/epan/dissectors/packet-http.c b/epan/dissectors/packet-http.c
index 73b92323c0..fec6736c44 100644
--- a/epan/dissectors/packet-http.c
+++ b/epan/dissectors/packet-http.c
@@ -923,16 +923,9 @@ dissect_http_message(tvbuff_t *tvb, int offset, packet_info *pinfo,
if (tree && stat_info->http_host && stat_info->request_uri) {
proto_item *e_ti;
- gchar* hostname = g_strstrip(g_strdup(stat_info->http_host));
- size_t size = strlen("http://") + strlen(hostname)
- + strlen(stat_info->request_uri) + 1;
- char *uri = ep_alloc(size);
-
- g_snprintf(uri, (gulong)size, "%s://%s%s",
+ gchar *uri = ep_strdup_printf("%s://%s%s",
"http", /* XXX, https? */
- hostname, stat_info->request_uri);
-
- g_free(hostname);
+ g_strstrip(ep_strdup(stat_info->http_host)), stat_info->request_uri);
e_ti = proto_tree_add_string(http_tree,
hf_http_request_full_uri, tvb, 0,
diff --git a/epan/dissectors/packet-ieee80211.c b/epan/dissectors/packet-ieee80211.c
index 8ba919292e..18c0052f3c 100644
--- a/epan/dissectors/packet-ieee80211.c
+++ b/epan/dissectors/packet-ieee80211.c
@@ -16721,8 +16721,7 @@ try_decrypt(tvbuff_t *tvb, guint offset, guint len, guint8 *algorithm, guint32 *
/* decrypt successful, let's set up a new data tvb. */
decr_tvb = tvb_new_child_real_data(tvb, tmp, len, len);
tvb_set_free_cb(decr_tvb, g_free);
- } else
- g_free(tmp);
+ }
return decr_tvb;
}
@@ -16740,7 +16739,7 @@ void set_airpdcap_keys(void)
GByteArray *bytes = NULL;
gboolean res;
- keys=(PAIRPDCAP_KEYS_COLLECTION)g_malloc(sizeof(AIRPDCAP_KEYS_COLLECTION));
+ keys=(PAIRPDCAP_KEYS_COLLECTION)se_alloc(sizeof(AIRPDCAP_KEYS_COLLECTION));
keys->nKeys = 0;
for(i = 0; (uat_wep_key_records != NULL) && (i < num_wepkeys_uat) && (i < MAX_ENCRYPTION_KEYS); i++)
@@ -16807,7 +16806,6 @@ void set_airpdcap_keys(void)
/* Now set the keys */
AirPDcapSetKeys(&airpdcap_ctx,keys->Keys,keys->nKeys);
- g_free(keys);
if (bytes)
g_byte_array_free(bytes, TRUE);
diff --git a/epan/dissectors/packet-mq.c b/epan/dissectors/packet-mq.c
index d9a03fc76c..d7369c5d26 100644
--- a/epan/dissectors/packet-mq.c
+++ b/epan/dissectors/packet-mq.c
@@ -2245,11 +2245,10 @@ dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
guint8* sFormat = NULL;
sFormat = tvb_get_ephemeral_string_enc(tvb, tMsgProps.iOffsetFormat, 8, string_rep);
- if (strip_trailing_blanks(sFormat, 8) == 0) sFormat = (guint8*)g_strdup("MQNONE");
- if (check_col(pinfo->cinfo, COL_INFO))
- {
- col_append_fstr(pinfo->cinfo, COL_INFO, " Fmt=%s", sFormat);
- }
+ if (strip_trailing_blanks(sFormat, 8) == 0)
+ sFormat = (guint8*)ep_strdup("MQNONE");
+
+ col_append_fstr(pinfo->cinfo, COL_INFO, " Fmt=%s", sFormat);
if (tree)
{
proto_item *hidden_item;
diff --git a/epan/dissectors/packet-multipart.c b/epan/dissectors/packet-multipart.c
index 5dfee10abc..91261663eb 100644
--- a/epan/dissectors/packet-multipart.c
+++ b/epan/dissectors/packet-multipart.c
@@ -167,8 +167,6 @@ static gint
is_known_multipart_header(const char *header_str, guint len);
static gint
index_of_char(const char *str, const char c);
-static char *
-unfold_and_compact_mime_header(const char *lines, gint *first_colon_offset);
/* Return a tvb that contains the binary representation of a base64
@@ -209,7 +207,7 @@ unfold_and_compact_mime_header(const char *lines, gint *first_colon_offset)
if (! lines) return NULL;
c = *p;
- ret = g_malloc(strlen(lines) + 1);
+ ret = ep_alloc(strlen(lines) + 1);
q = ret;
while (c) {
@@ -414,7 +412,6 @@ get_multipart_info(packet_info *pinfo)
start = find_parameter(parameters, "boundary=", &len);
if(!start) {
- g_free(parameters);
return NULL;
}
@@ -425,7 +422,6 @@ get_multipart_info(packet_info *pinfo)
m_info->type = type;
m_info->boundary = g_strndup(start, len);
m_info->boundary_length = len;
- g_free(parameters);
return m_info;
}
@@ -709,7 +705,6 @@ process_body_part(proto_tree *tree, tvbuff_t *tvb, const guint8 *boundary,
}
}
}
- g_free(header_str);
offset = next_offset;
}
diff --git a/epan/dissectors/packet-nfs.c b/epan/dissectors/packet-nfs.c
index a12ba6412f..13fc917661 100644
--- a/epan/dissectors/packet-nfs.c
+++ b/epan/dissectors/packet-nfs.c
@@ -9333,9 +9333,8 @@ dissect_nfs_argop4(tvbuff_t *tvb, int offset, packet_info *pinfo,
break;
case NFS4_OP_RENEW:
- clientid_array = tvb_get_string(tvb, offset, 8);
+ clientid_array = tvb_get_ephemeral_string(tvb, offset, 8);
clientid_hash = crc16_ccitt(clientid_array, 8);
- g_free(clientid_array);
offset = dissect_rpc_uint64(tvb, newftree, hf_nfs_clientid4, offset);
g_string_append_printf (op_summary[ops_counter].optext, " CID: 0x%04x", clientid_hash);
diff --git a/epan/dissectors/packet-quakeworld.c b/epan/dissectors/packet-quakeworld.c
index 0e2ece17af..86f581fa54 100644
--- a/epan/dissectors/packet-quakeworld.c
+++ b/epan/dissectors/packet-quakeworld.c
@@ -201,13 +201,8 @@ Cmd_Argv_length(int arg)
static void
Cmd_TokenizeString(char* text)
{
- int i;
int start;
- /* clear the args from the last string */
- for (i=0 ; i<cmd_argc ; i++)
- g_free(cmd_argv[i]);
-
cmd_argc = 0;
start = 0;
@@ -233,7 +228,7 @@ Cmd_TokenizeString(char* text)
return;
if (cmd_argc < MAX_ARGS) {
- cmd_argv[cmd_argc] = g_strdup(com_token);
+ cmd_argv[cmd_argc] = ep_strdup(com_token);
cmd_argv_start[cmd_argc] = start + com_token_start;
cmd_argv_length[cmd_argc] = com_token_length;
cmd_argc++;
diff --git a/epan/dissectors/packet-rlc.c b/epan/dissectors/packet-rlc.c
index 2173f9c2e1..5c1cd9726f 100644
--- a/epan/dissectors/packet-rlc.c
+++ b/epan/dissectors/packet-rlc.c
@@ -2030,10 +2030,9 @@ rlc_decipher_tvb(tvbuff_t *tvb, packet_info *pinfo, guint32 counter, guint8 rbid
/*Fix the key into a byte block*/
/*TODO: This should be done in a preferences callback function*/
- out = g_malloc0( strlen(global_rlc_kasumi_key)+1);
+ out = ep_alloc0( strlen(global_rlc_kasumi_key)+1);
memcpy(out,global_rlc_kasumi_key,strlen(global_rlc_kasumi_key)); /*Copy from prefrence const pointer*/
key_in = translate_hex_key(out); /*Translation*/
- g_free(out);
/*Location for decrypted data*/
out = g_malloc( tvb_length(tvb) );
diff --git a/epan/dissectors/packet-ssl.c b/epan/dissectors/packet-ssl.c
index 29337443aa..07eed974e9 100644
--- a/epan/dissectors/packet-ssl.c
+++ b/epan/dissectors/packet-ssl.c
@@ -2066,7 +2066,7 @@ dissect_ssl3_handshake(tvbuff_t *tvb, packet_info *pinfo,
}
/* convert hex string into char*/
- out = (unsigned char*) g_malloc(size > 0 ? size / 2 : 0);
+ out = (unsigned char*) ep_alloc(size > 0 ? size / 2 : 0);
for (i = 0; i < size; i+=2)
{
@@ -2093,8 +2093,6 @@ dissect_ssl3_handshake(tvbuff_t *tvb, packet_info *pinfo,
/* psk*/
memcpy(&pre_master_secret.data[psk_len + 4], ssl->psk, psk_len);
- g_free(out);
-
ssl->pre_master_secret.data = pre_master_secret.data;
ssl->pre_master_secret.data_len = pre_master_len;
/*ssl_debug_printf("pre master secret",&ssl->pre_master_secret);*/
diff --git a/epan/dissectors/packet-uaudp.c b/epan/dissectors/packet-uaudp.c
index ec44bf7593..ef7a5b1c35 100644
--- a/epan/dissectors/packet-uaudp.c
+++ b/epan/dissectors/packet-uaudp.c
@@ -666,7 +666,7 @@ void proto_reg_handoff_uaudp(void)
else
{
use_sys_ip = FALSE;
- pref_sys_ip_s = g_strdup("");
+ pref_sys_ip_s = "";
}
}