Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 31 Dec 2016 12:14:25 +0000 (UTC)
From:      Ngie Cooper <ngie@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r310954 - head/usr.sbin/bsnmpd/tools/libbsnmptools
Message-ID:  <201612311214.uBVCEPIY071709@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ngie
Date: Sat Dec 31 12:14:25 2016
New Revision: 310954
URL: https://svnweb.freebsd.org/changeset/base/310954

Log:
  Set value->v.octetstring.len to a correct value on malloc success/failure
  
  The previous code always set value->v.octetstring.len to len, regardless
  of the result from the malloc call. This misleads the caller on malloc
  failure. Set .len to len on success and 0 on failure.
  
  MFC after:	1 week
  Reported by:	Coverity
  CID:		1007590

Modified:
  head/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptc.c

Modified: head/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptc.c
==============================================================================
--- head/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptc.c	Sat Dec 31 12:06:27 2016	(r310953)
+++ head/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptc.c	Sat Dec 31 12:14:25 2016	(r310954)
@@ -266,13 +266,13 @@ parse_octetstring(struct snmp_value *val
 		return (-1);
 	}
 
-	value->v.octetstring.len = len;
-
-	if((value->v.octetstring.octets = malloc(len)) == NULL) {
+	if ((value->v.octetstring.octets = malloc(len)) == NULL) {
+		value->v.octetstring.len = 0;
 		syslog(LOG_ERR, "malloc failed: %s", strerror(errno));
 		return (-1);
 	}
 
+	value->v.octetstring.len = len;
 	memcpy(value->v.octetstring.octets, val, len);
 	value->syntax = SNMP_SYNTAX_OCTETSTRING;
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201612311214.uBVCEPIY071709>