more ephemeral memory cleanup

svn path=/trunk/; revision=44496
This commit is contained in:
Michael Mann 2012-08-14 17:58:41 +00:00
parent c8a4832050
commit 5dd7371960
11 changed files with 30 additions and 60 deletions

View File

@ -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;
}

View File

@ -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);

View File

@ -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,

View File

@ -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);

View File

@ -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;

View File

@ -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;
}

View File

@ -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);

View File

@ -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++;

View File

@ -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) );

View File

@ -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);*/

View File

@ -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 = "";
}
}