Module Name:    src
Committed By:   martin
Date:           Tue Jan 26 14:05:29 UTC 2016

Modified Files:
        src/usr.sbin/sysinst: disks.c

Log Message:
David Binderman in PR bin/50713: fix memory leaks


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/usr.sbin/sysinst/disks.c

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

Modified files:

Index: src/usr.sbin/sysinst/disks.c
diff -u src/usr.sbin/sysinst/disks.c:1.11 src/usr.sbin/sysinst/disks.c:1.12
--- src/usr.sbin/sysinst/disks.c:1.11	Sat Nov 14 23:00:17 2015
+++ src/usr.sbin/sysinst/disks.c	Tue Jan 26 14:05:29 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: disks.c,v 1.11 2015/11/14 23:00:17 pgoyette Exp $ */
+/*	$NetBSD: disks.c,v 1.12 2016/01/26 14:05:29 martin Exp $ */
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -800,8 +800,11 @@ make_filesystems(void)
 			error = fsck_preen(pm->diskdev, ptn, lbl->fsname);
 		}
 		free(newfs);
-		if (error != 0)
+		if (error != 0) {
+			free(devdev);
+			free(dev);
 			return error;
+		}
 
 		lbl->pi_flags ^= PIF_NEWFS;
 		md_pre_mount();
@@ -813,6 +816,8 @@ make_filesystems(void)
 			if (error) {
 				msg_display(MSG_mountfail, dev, ' ', lbl->pi_mount);
 				process_menu(MENU_ok, NULL);
+				free(devdev);
+				free(dev);
 				return error;
 			}
 		}
@@ -1055,8 +1060,10 @@ fsck_preen(const char *disk, int ptn, co
 	asprintf(&prog, "/sbin/fsck_%s", fsname);
 	if (prog == NULL)
 		return 0;
-	if (access(prog, X_OK) != 0)
+	if (access(prog, X_OK) != 0) {
+		free(prog);
 		return 0;
+	}
 	if (!strcmp(fsname,"ffs"))
 		fixsb(prog, disk, ptn);
 	error = run_program(0, "%s -p -q /dev/r%s%c", prog, disk, ptn);

Reply via email to