aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-ipsec.c
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2009-10-25 11:43:30 +0000
committerAnders Broman <anders.broman@ericsson.com>2009-10-25 11:43:30 +0000
commit88bb44a51e350c9749323242482dc5e944697d8f (patch)
treea19835aec094d07536c6def639d5d5d236f0a1cd /epan/dissectors/packet-ipsec.c
parent337896f4c6777bc0b84a2e017ebcbb52100a312b (diff)
From Jakub Zawadzki:
Cleanup dissector code - use proper memory functions. https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=4164 svn path=/trunk/; revision=30691
Diffstat (limited to 'epan/dissectors/packet-ipsec.c')
-rw-r--r--epan/dissectors/packet-ipsec.c33
1 files changed, 11 insertions, 22 deletions
diff --git a/epan/dissectors/packet-ipsec.c b/epan/dissectors/packet-ipsec.c
index 0e44af9745..5e9abfbfe6 100644
--- a/epan/dissectors/packet-ipsec.c
+++ b/epan/dissectors/packet-ipsec.c
@@ -395,9 +395,7 @@ get_full_ipv6_addr(char* ipv6_addr_expanded, char *ipv6_addr)
if(suffix_len < IPSEC_STRLEN_IPV6)
{
- prefix_addr = ep_alloc(strlen(ipv6_addr) - suffix_cpt + 1);
- memcpy(prefix_addr,ipv6_addr,strlen(ipv6_addr) - suffix_cpt);
- prefix_addr[strlen(ipv6_addr) - suffix_cpt] = '\0';
+ prefix_addr = ep_strndup(ipv6_addr,strlen(ipv6_addr) - suffix_cpt);
prefix_remaining = get_ipv6_suffix(prefix,prefix_addr);
prefix_len = strlen(prefix);
memcpy(ipv6_addr_expanded,prefix,prefix_len);
@@ -588,8 +586,7 @@ esp_sa_parse_ipv6addr(const gchar *sa, guint index_start, gchar **pt_ipv6addr, g
if(done_flag)
{
- *pt_ipv6addr = (gchar *)g_malloc((strlen(addr_string) + 1) * sizeof(gchar));
- memcpy(*pt_ipv6addr,addr_string,strlen(addr_string) + 1);
+ *pt_ipv6addr = g_strdup(addr_string);
}
return done_flag;
@@ -644,8 +641,7 @@ esp_sa_parse_ipv4addr(const gchar *sa, guint index_start, gchar **pt_ipv4addr, g
if(done_flag)
{
- *pt_ipv4addr = (gchar *)g_malloc((strlen(addr_string) + 1) * sizeof(gchar));
- memcpy(*pt_ipv4addr,addr_string,strlen(addr_string) + 1);
+ *pt_ipv4addr = g_strdup(addr_string);
}
return done_flag;
@@ -698,8 +694,7 @@ esp_sa_parse_spi(const gchar *sa, guint index_start, gchar **pt_spi, guint *inde
}
*index_end = cpt + index_start - 1;
- *pt_spi = (gchar *)g_malloc((strlen(spi_string) + 1) * sizeof(gchar));
- memcpy(*pt_spi, spi_string, strlen(spi_string) + 1);
+ *pt_spi = g_strdup(spi_string);
done_flag = TRUE;
}
@@ -851,7 +846,7 @@ esp_sa_remove_white(const gchar *sa, gchar **sa_bis)
}
sa_tmp = ep_alloc(strlen(sa) + 1);
- for(i = 0; i < strlen(sa); i++)
+ for(i = 0; sa[i]; i++)
{
if((sa[i] != ' ') && (sa[i] != '\t'))
@@ -863,9 +858,7 @@ esp_sa_remove_white(const gchar *sa, gchar **sa_bis)
sa_tmp[cpt] = '\0';
/* XXX - Should this be se_allocated instead? */
- *sa_bis = (gchar *)g_malloc((cpt +1) * sizeof(gchar));
- memcpy(*sa_bis,sa_tmp,cpt);
- (*sa_bis)[cpt] = '\0';
+ *sa_bis = g_strdup(sa_tmp);
}
#endif
@@ -1153,7 +1146,7 @@ filter_spi_match(gchar *spi, gchar *filter)
return FALSE;
}
- for(i = 0; i < strlen(filter); i++)
+ for(i = 0; filter[i]; i++)
{
if((filter[i] != IPSEC_SA_WILDCARDS_ANY) && (filter[i] != spi[i])) return FALSE;
}
@@ -1254,8 +1247,7 @@ compute_ascii_key(gchar **ascii_key, gchar *key)
else
{
key_len = strlen(key);
- *ascii_key = (gchar *) g_malloc ((key_len + 1)* sizeof(gchar));
- memcpy(*ascii_key, key, key_len + 1);
+ *ascii_key = g_strdup(key);
}
}
@@ -1939,12 +1931,10 @@ dissect_esp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
/* Allocate Buffers for Authenticator Field */
- authenticator_data = (guint8 *) g_malloc (( esp_auth_len + 1) * sizeof(guint8));
- memset(authenticator_data,0, esp_auth_len + 1);
+ authenticator_data = (guint8 *) g_malloc0 (( esp_auth_len + 1) * sizeof(guint8));
tvb_memcpy(tvb, authenticator_data, len - esp_auth_len, esp_auth_len);
- esp_data = (guint8 *) g_malloc (( len - esp_auth_len + 1) * sizeof(guint8));
- memset(esp_data,0, len - esp_auth_len + 1);
+ esp_data = (guint8 *) g_malloc0 (( len - esp_auth_len + 1) * sizeof(guint8));
tvb_memcpy(tvb, esp_data, 0, len - esp_auth_len);
err = gcry_md_open (&md_hd, auth_algo_libgcrypt, GCRY_MD_FLAG_HMAC);
@@ -2387,8 +2377,7 @@ dissect_esp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if(decrypt_using_libgcrypt)
{
/* Allocate Buffers for Encrypted and Decrypted data */
- encrypted_data = (guint8 *) g_malloc ((decrypted_len_alloc) * sizeof(guint8));
- memset(encrypted_data,0,decrypted_len_alloc);
+ encrypted_data = (guint8 *) g_malloc0 ((decrypted_len_alloc) * sizeof(guint8));
decrypted_data = (guint8 *) g_malloc ((decrypted_len_alloc + esp_iv_len)* sizeof(guint8));
tvb_memcpy(tvb, encrypted_data , sizeof(struct newesp), decrypted_len);