Module Name:    src
Committed By:   christos
Date:           Thu Dec  3 21:51:02 UTC 2015

Modified Files:
        src/sbin/gpt: label.c

Log Message:
CID 1341564: Arg memory leak


To generate a diff of this commit:
cvs rdiff -u -r1.26 -r1.27 src/sbin/gpt/label.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sbin/gpt/label.c
diff -u src/sbin/gpt/label.c:1.26 src/sbin/gpt/label.c:1.27
--- src/sbin/gpt/label.c:1.26	Thu Dec  3 16:48:12 2015
+++ src/sbin/gpt/label.c	Thu Dec  3 16:51:02 2015
@@ -33,7 +33,7 @@
 __FBSDID("$FreeBSD: src/sbin/gpt/label.c,v 1.3 2006/10/04 18:20:25 marcel Exp $");
 #endif
 #ifdef __RCSID
-__RCSID("$NetBSD: label.c,v 1.26 2015/12/03 21:48:12 christos Exp $");
+__RCSID("$NetBSD: label.c,v 1.27 2015/12/03 21:51:02 christos Exp $");
 #endif
 
 #include <sys/types.h>
@@ -135,21 +135,24 @@ cmd_label(gpt_t gpt, int argc, char *arg
 		switch(ch) {
 		case 'f':
 			if (name_from_file(gpt, &name) == -1)
-				return usage();
+				goto usage;
 			break;
 		case 'l':
 			if (gpt_name_get(gpt, &name) == -1)
-				return usage();
+				goto usage;
 			break;
 		default:
 			if (gpt_add_find(gpt, &find, ch) == -1)
-				return usage();
+				goto usage;
 			break;
 		}
 	}
 
 	if (name == NULL || argc != optind)
-		return usage();
+		goto usage;
 
 	return gpt_change_ent(gpt, &find, change, name);
+usage:
+	free(name);
+	return -1;
 }

Reply via email to