Module Name:    src
Committed By:   martin
Date:           Fri Jun  5 16:01:55 UTC 2015

Modified Files:
        src/sys/arch/vax/boot/boot: boot.c

Log Message:
Close the file descriptor used for loading before jumping to the kernel.
Pointed out by Felix Deichmann on port-vax.


To generate a diff of this commit:
cvs rdiff -u -r1.32 -r1.33 src/sys/arch/vax/boot/boot/boot.c

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

Modified files:

Index: src/sys/arch/vax/boot/boot/boot.c
diff -u src/sys/arch/vax/boot/boot/boot.c:1.32 src/sys/arch/vax/boot/boot/boot.c:1.33
--- src/sys/arch/vax/boot/boot/boot.c:1.32	Sat Nov  9 18:31:53 2013
+++ src/sys/arch/vax/boot/boot/boot.c	Fri Jun  5 16:01:55 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: boot.c,v 1.32 2013/11/09 18:31:53 christos Exp $ */
+/*	$NetBSD: boot.c,v 1.33 2015/06/05 16:01:55 martin Exp $ */
 /*-
  * Copyright (c) 1982, 1986 The Regents of the University of California.
  * All rights reserved.
@@ -93,7 +93,7 @@ struct rpb bootrpb;
 void
 Xmain(void)
 {
-	int j, nu;
+	int j, nu, fd;
 	u_long marks[MARK_MAX];
 	extern const char bootprog_rev[];
 
@@ -133,14 +133,14 @@ Xmain(void)
 		int fileindex;
 		for (fileindex = 0; filelist[fileindex].name[0] != '\0';
 		    fileindex++) {
-			int err;
 			errno = 0;
 			if (!filelist[fileindex].quiet)
 				printf("> boot %s\n", filelist[fileindex].name);
 			marks[MARK_START] = 0;
-			err = loadfile(filelist[fileindex].name, marks,
+			fd = loadfile(filelist[fileindex].name, marks,
 			    LOAD_KERNEL|COUNT_KERNEL);
-			if (err == 0) {
+			if (fd >= 0) {
+				close(fd);
 				machdep_start((char *)marks[MARK_ENTRY],
 						      marks[MARK_NSYM],
 					      (void *)marks[MARK_START],
@@ -197,7 +197,7 @@ void
 boot(char *arg)
 {
 	char *fn = "netbsd";
-	int howto, fl, err;
+	int howto, fl, fd;
 	u_long marks[MARK_MAX];
 
 	if (arg) {
@@ -230,8 +230,9 @@ fail:			printf("usage: boot [filename] [
 	}
 load:
 	marks[MARK_START] = 0;
-	err = loadfile(fn, marks, LOAD_KERNEL|COUNT_KERNEL);
-	if (err == 0) {
+	fd = loadfile(fn, marks, LOAD_KERNEL|COUNT_KERNEL);
+	if (fd >= 0) {
+		close(fd);
 		machdep_start((char *)marks[MARK_ENTRY],
 				      marks[MARK_NSYM],
 			      (void *)marks[MARK_START],

Reply via email to