svn commit: r316535 - head/sbin/geom/class/part

Alan Somers asomers at FreeBSD.org
Wed Apr 5 18:31:27 UTC 2017


Author: asomers
Date: Wed Apr  5 18:31:26 2017
New Revision: 316535
URL: https://svnweb.freebsd.org/changeset/base/316535

Log:
  Fix memory leak in "gpart bootcode"
  
  Also, annotate that gpart_issue never returns
  
  Reported by:	Coverity
  CID:		1007105
  MFC after:	3 weeks
  Sponsored by:	Spectra Logic Corp

Modified:
  head/sbin/geom/class/part/geom_part.c

Modified: head/sbin/geom/class/part/geom_part.c
==============================================================================
--- head/sbin/geom/class/part/geom_part.c	Wed Apr  5 17:56:21 2017	(r316534)
+++ head/sbin/geom/class/part/geom_part.c	Wed Apr  5 18:31:26 2017	(r316535)
@@ -81,7 +81,7 @@ static int gpart_autofill(struct gctl_re
 static int gpart_autofill_resize(struct gctl_req *);
 static void gpart_bootcode(struct gctl_req *, unsigned int);
 static void *gpart_bootfile_read(const char *, ssize_t *);
-static void gpart_issue(struct gctl_req *, unsigned int);
+static _Noreturn void gpart_issue(struct gctl_req *, unsigned int);
 static void gpart_show(struct gctl_req *, unsigned int);
 static void gpart_show_geom(struct ggeom *, const char *, int);
 static int gpart_show_hasopt(struct gctl_req *, const char *, const char *);
@@ -1270,6 +1270,7 @@ gpart_bootcode(struct gctl_req *req, uns
 		gpart_issue(req, fl);
 
 	geom_deletetree(&mesh);
+	free(partcode);
 }
 
 static void
@@ -1290,7 +1291,7 @@ gpart_print_error(const char *errstr)
 		warnx("%s", errmsg);
 }
 
-static void
+static _Noreturn void
 gpart_issue(struct gctl_req *req, unsigned int fl __unused)
 {
 	char buf[4096];


More information about the svn-src-all mailing list