Module Name:    src
Committed By:   snj
Date:           Sat May 30 06:48:20 UTC 2009

Modified Files:
        src/sbin/newfs [netbsd-3]: mkfs.c

Log Message:
Pull up following revision(s) (requested by jnemeth in ticket #2020):
        sbin/newfs/mkfs.c: revision 1.104
PR/37155 - Marcelo Schmidt -- specifying too large of a size causes segvs


To generate a diff of this commit:
cvs rdiff -u -r1.88.2.2 -r1.88.2.3 src/sbin/newfs/mkfs.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/newfs/mkfs.c
diff -u src/sbin/newfs/mkfs.c:1.88.2.2 src/sbin/newfs/mkfs.c:1.88.2.3
--- src/sbin/newfs/mkfs.c:1.88.2.2	Thu Jan  5 22:29:10 2006
+++ src/sbin/newfs/mkfs.c	Sat May 30 06:48:20 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: mkfs.c,v 1.88.2.2 2006/01/05 22:29:10 riz Exp $	*/
+/*	$NetBSD: mkfs.c,v 1.88.2.3 2009/05/30 06:48:20 snj Exp $	*/
 
 /*
  * Copyright (c) 1980, 1989, 1993
@@ -73,7 +73,7 @@
 #if 0
 static char sccsid[] = "@(#)mkfs.c	8.11 (Berkeley) 5/3/95";
 #else
-__RCSID("$NetBSD: mkfs.c,v 1.88.2.2 2006/01/05 22:29:10 riz Exp $");
+__RCSID("$NetBSD: mkfs.c,v 1.88.2.3 2009/05/30 06:48:20 snj Exp $");
 #endif
 #endif /* not lint */
 
@@ -179,7 +179,7 @@
 		calc_memfree();
 		if (fssize * sectorsize > memleft)
 			fssize = memleft / sectorsize;
-		if ((membase = mkfs_malloc(fssize * sectorsize)) == 0)
+		if ((membase = mkfs_malloc(fssize * sectorsize)) == NULL)
 			exit(12);
 	}
 #endif
@@ -458,7 +458,7 @@
 		errx(1, "cylinder group summary doesn't fit in sectors");
 	fscs_0 = mmap(0, 2 * sblock.fs_fsize, PROT_READ|PROT_WRITE,
 			MAP_ANON|MAP_PRIVATE, -1, 0);
-	if (fscs_0 == NULL)
+	if (fscs_0 == MAP_FAILED)
 		exit(39);
 	memset(fscs_0, 0, 2 * sblock.fs_fsize);
 	fs_csaddr = sblock.fs_csaddr;
@@ -554,7 +554,7 @@
 	for (;;) {
 		iobuf = mmap(0, iobuf_memsize, PROT_READ|PROT_WRITE,
 				MAP_ANON|MAP_PRIVATE, -1, 0);
-		if (iobuf != NULL)
+		if (iobuf != MAP_FAILED)
 			break;
 		if (iobuf_memsize != iobufsize) {
 			/* Try again with the smaller size */
@@ -1517,6 +1517,7 @@
 mkfs_malloc(size_t size)
 {
 	u_long pgsz;
+	caddr_t *memory;
 
 	if (size == 0)
 		return (NULL);
@@ -1528,7 +1529,8 @@
 	if (size > memleft)
 		size = memleft;
 	memleft -= size;
-	return (mmap(0, size, PROT_READ|PROT_WRITE, MAP_ANON|MAP_PRIVATE,
-	    -1, 0));
+	memory = mmap(0, size, PROT_READ|PROT_WRITE, MAP_ANON|MAP_PRIVATE,
+	    -1, 0);
+	return memory != MAP_FAILED ? memory : NULL;
 }
 #endif	/* MFS */

Reply via email to