summaryrefslogtreecommitdiffstats
path: root/usr.sbin
diff options
context:
space:
mode:
authorngie <ngie@FreeBSD.org>2016-05-04 00:14:50 +0000
committerngie <ngie@FreeBSD.org>2016-05-04 00:14:50 +0000
commit26e1356c454fe50e6d61b6c919afb942ce8182c3 (patch)
tree28dcac46a1ff8dcec3ccc3b4f81a50a2956889d0 /usr.sbin
parent78b62c1962daa19690db2303cc8c8529b23bc773 (diff)
downloadFreeBSD-src-26e1356c454fe50e6d61b6c919afb942ce8182c3.zip
FreeBSD-src-26e1356c454fe50e6d61b6c919afb942ce8182c3.tar.gz
MFC r298451,r298452,r298507,r298750:
r298451: Don't use `entry` after free in the "already in lists" case Return with 0 as it isn't an error. CID: 1006085 Obtained from: Isilon OneFS (part of r493633) r298452: Don't try to free `string` (stack allocated char[]) Fix minor style with warnx call while in the neighborhood CID: 1009683 r298507: Fix looking for "UTC" at start of ptr by using strnmp instead of improperly unrolled equivalent CID: 1347118 r298750: Use a better idiom for finding UTC prefixed timezones Instead of copy-pasting the string literal for "UTC" 3 times and using strlen, use a static char[3] buffer and sizeof(..).
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/bsnmpd/tools/libbsnmptools/bsnmpimport.c1
-rw-r--r--usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptc.c7
-rw-r--r--usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptools.c3
3 files changed, 6 insertions, 5 deletions
diff --git a/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmpimport.c b/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmpimport.c
index b92532f..67a44d9 100644
--- a/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmpimport.c
+++ b/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmpimport.c
@@ -693,6 +693,7 @@ snmp_import_table(struct snmp_toolinfo *snmptoolctx, struct snmp_oid2str *obj)
/* Same entry already present in lists. */
free(entry->string);
free(entry);
+ return (0);
}
(void) snmp_import_update_table(ENTRY_INDEX, entry);
diff --git a/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptc.c b/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptc.c
index dc22c69..a682c80 100644
--- a/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptc.c
+++ b/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptc.c
@@ -338,8 +338,9 @@ static char *
snmp_date2asn_oid(char *str, struct asn_oid *oid)
{
char *endptr, *ptr;
- uint32_t v;
+ static const char UTC[3] = "UTC";
int32_t saved_errno;
+ uint32_t v;
if (snmp_suboid_append(oid, (asn_subid_t) SNMP_DATETIME_OCTETS) < 0)
return (NULL);
@@ -440,8 +441,8 @@ snmp_date2asn_oid(char *str, struct asn_oid *oid)
/* 'UTC' - optional */
ptr = endptr + 1;
- if (*ptr == 'U' && *(ptr + 1) == 'T' && *(ptr + 1) == 'C')
- ptr += 3;
+ if (strncmp(ptr, UTC, sizeof(UTC)) == 0)
+ ptr += sizeof(UTC);
/* '+/-' */
if (*ptr == '-' || *ptr == '+') {
diff --git a/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptools.c b/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptools.c
index 52aa1a9..38665bf 100644
--- a/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptools.c
+++ b/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptools.c
@@ -1079,10 +1079,9 @@ snmp_oid2asn_oid(struct snmp_toolinfo *snmptoolctx, char *str,
strlcpy(string, str, i + 1);
string[i] = '\0';
if (snmp_lookup_enumoid(snmptoolctx, &obj, string) < 0) {
- warnx("Unknown string - %s",string);
+ warnx("Unknown string - %s", string);
return (NULL);
}
- free(string);
}
asn_append_oid(oid, &(obj.val.var));
OpenPOWER on IntegriCloud