diff options
author | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2005-08-19 22:44:56 +0000 |
---|---|---|
committer | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2005-08-19 22:44:56 +0000 |
commit | 4e088df2b4ed724e382eee90a4c8823a00b5cc47 (patch) | |
tree | 421fd8942e7c1c27f3f7a3229113b6f23d4cf154 /epan/dissectors | |
parent | d0408f5583bf756f81350e72747f95c1b8075d08 (diff) |
no more g_malloc or sprintf in snmp
svn path=/trunk/; revision=15444
Diffstat (limited to 'epan/dissectors')
-rw-r--r-- | epan/dissectors/packet-snmp.c | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/epan/dissectors/packet-snmp.c b/epan/dissectors/packet-snmp.c index 239004705c..9613848588 100644 --- a/epan/dissectors/packet-snmp.c +++ b/epan/dissectors/packet-snmp.c @@ -822,8 +822,8 @@ check_var_length(guint vb_length, guint required_length) /* Enough room for the largest "Length is XXX, should be XXX" message - 10 digits for each XXX. */ - buf = g_malloc(sizeof badlen_fmt + 10 + 10); - sprintf(buf, badlen_fmt, vb_length, required_length); + buf = ep_alloc(sizeof badlen_fmt + 10 + 10); + g_snprintf(buf, sizeof badlen_fmt + 10 + 10, badlen_fmt, vb_length, required_length); return buf; } return NULL; /* length is OK */ @@ -914,7 +914,7 @@ format_var(struct variable_list *variable, subid_t *variable_oid, * XXX - check for "sprint_realloc_objid()" failure. */ buf_len = 256; - buf = g_malloc(buf_len); + buf = ep_alloc(buf_len); *buf = '\0'; out_len = 0; sprint_realloc_value(&buf, &buf_len, &out_len, 1, variable_oid, @@ -1004,7 +1004,6 @@ snmp_variable_decode(proto_tree *snmp_tree, proto_tree_add_text(snmp_tree, asn1->tvb, offset, length, "Value: %s", vb_display_string); - g_free(vb_display_string); #else /* HAVE_SOME_SNMP */ proto_tree_add_text(snmp_tree, asn1->tvb, offset, length, @@ -1032,7 +1031,6 @@ snmp_variable_decode(proto_tree *snmp_tree, proto_tree_add_text(snmp_tree, asn1->tvb, offset, length, "Value: %s", vb_display_string); - g_free(vb_display_string); #else /* HAVE_SOME_SNMP */ proto_tree_add_text(snmp_tree, asn1->tvb, offset, length, @@ -1065,7 +1063,6 @@ snmp_variable_decode(proto_tree *snmp_tree, proto_tree_add_text(snmp_tree, asn1->tvb, offset, length, "Value: %s", vb_display_string); - g_free(vb_display_string); #else /* HAVE_SOME_SNMP */ /* * If some characters are not printable, display @@ -1083,11 +1080,11 @@ snmp_variable_decode(proto_tree *snmp_tree, * of the string. */ vb_display_string = ep_alloc(4*vb_length); - buf = &vb_display_string[0]; - len = sprintf(buf, "%03u", vb_octet_string[0]); + buf = vb_display_string; + len = g_snprintf(buf, 4*vb_length, "%03u", vb_octet_string[0]); buf += len; for (i = 1; i < vb_length; i++) { - len = sprintf(buf, ".%03u", + len = g_snprintf(buf, 4*vb_length-(buf-vb_display_string), ".%03u", vb_octet_string[i]); buf += len; } @@ -1132,7 +1129,6 @@ snmp_variable_decode(proto_tree *snmp_tree, proto_tree_add_text(snmp_tree, asn1->tvb, offset, length, "Value: %s", vb_display_string); - g_free(vb_display_string); #else /* HAVE_SOME_SNMP */ vb_display_string = format_oid(vb_oid, vb_oid_length); proto_tree_add_text(snmp_tree, asn1->tvb, offset, @@ -2609,6 +2605,7 @@ proto_register_snmp(void) { #if defined(_WIN32) && defined(HAVE_SOME_SNMP) char *mib_path; + int mib_path_len; #define MIB_PATH_APPEND "snmp\\mibs" #endif gchar *tmp_mib_modules; @@ -2703,9 +2700,9 @@ proto_register_snmp(void) #ifdef _WIN32 /* Set MIBDIRS so that the SNMP library can find its mibs. */ /* XXX - Should we set MIBS or MIBFILES as well? */ - - mib_path = ep_alloc (strlen(get_datafile_dir()) + strlen(MIB_PATH_APPEND) + 20); - sprintf (mib_path, "MIBDIRS=%s\\%s", get_datafile_dir(), MIB_PATH_APPEND); + mib_path_len=strlen(get_datafile_dir()) + strlen(MIB_PATH_APPEND) + 20; + mib_path = ep_alloc (mib_path_len); + g_snprintf (mib_path, mib_path_len, "MIBDIRS=%s\\%s", get_datafile_dir(), MIB_PATH_APPEND); /* Amazingly enough, Windows does not provide setenv(). */ if (getenv("MIBDIRS") == NULL) _putenv(mib_path); |