Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 16 Jul 2016 07:48:01 +0000 (UTC)
From:      Michael Tuexen <tuexen@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r302928 - head/sys/netinet
Message-ID:  <201607160748.u6G7m1CN063198@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: tuexen
Date: Sat Jul 16 07:48:01 2016
New Revision: 302928
URL: https://svnweb.freebsd.org/changeset/base/302928

Log:
  Address a potential memory leak found a the clang static code analyzer
  running on the userland stack.
  
  MFC after:	3 days

Modified:
  head/sys/netinet/sctp_auth.c

Modified: head/sys/netinet/sctp_auth.c
==============================================================================
--- head/sys/netinet/sctp_auth.c	Sat Jul 16 06:41:02 2016	(r302927)
+++ head/sys/netinet/sctp_auth.c	Sat Jul 16 07:48:01 2016	(r302928)
@@ -542,7 +542,7 @@ sctp_insert_sharedkey(struct sctp_keyhea
 		}
 	}
 	/* shouldn't reach here */
-	return (0);
+	return (EINVAL);
 }
 
 void
@@ -622,8 +622,11 @@ sctp_copy_skeylist(const struct sctp_key
 	LIST_FOREACH(skey, src, next) {
 		new_skey = sctp_copy_sharedkey(skey);
 		if (new_skey != NULL) {
-			(void)sctp_insert_sharedkey(dest, new_skey);
-			count++;
+			if (sctp_insert_sharedkey(dest, new_skey)) {
+				sctp_free_sharedkey(new_skey);
+			} else {
+				count++;
+			}
 		}
 	}
 	return (count);



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