[Midnightbsd-cvs] src: mkfs.c: Don't treat failure to find the operator GID as a fatal

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Sun Sep 2 22:27:28 EDT 2007


Log Message:
-----------
Don't treat failure to find the operator GID as a fatal
error; this made it impossible to use newfs (and mdmfs) when /etc/group
is missing and /etc is read-only.

Obtained from FreeBSD

Modified Files:
--------------
    src/sbin/newfs:
        mkfs.c (r1.1.1.1 -> r1.2)

-------------- next part --------------
Index: mkfs.c
===================================================================
RCS file: /home/cvs/src/sbin/newfs/mkfs.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -Lsbin/newfs/mkfs.c -Lsbin/newfs/mkfs.c -u -r1.1.1.1 -r1.2
--- sbin/newfs/mkfs.c
+++ sbin/newfs/mkfs.c
@@ -748,11 +748,16 @@
 {
 	union dinode node;
 	struct group *grp;
+	gid_t gid;
 	int entries;
 
 	memset(&node, 0, sizeof node);
-	if ((grp = getgrnam("operator")) == NULL)
-		errx(35, "Cannot retrieve operator gid");
+	if ((grp = getgrnam("operator")) != NULL) {
+		gid = grp->gr_gid;
+	} else {
+		warnx("Cannot retrieve operator gid, using gid 0.");
+		gid = 0;
+	}
 	entries = (nflag) ? ROOTLINKCNT - 1: ROOTLINKCNT;
 	if (sblock.fs_magic == FS_UFS1_MAGIC) {
 		/*
@@ -778,7 +783,7 @@
 			 * create the .snap directory
 			 */
 			node.dp1.di_mode |= 020;
-			node.dp1.di_gid = grp->gr_gid;
+			node.dp1.di_gid = gid;
 			node.dp1.di_nlink = SNAPLINKCNT;
 			node.dp1.di_size = makedir(snap_dir, SNAPLINKCNT);
 				node.dp1.di_db[0] =
@@ -814,7 +819,7 @@
 			 * create the .snap directory
 			 */
 			node.dp2.di_mode |= 020;
-			node.dp2.di_gid = grp->gr_gid;
+			node.dp2.di_gid = gid;
 			node.dp2.di_nlink = SNAPLINKCNT;
 			node.dp2.di_size = makedir(snap_dir, SNAPLINKCNT);
 				node.dp2.di_db[0] =


More information about the Midnightbsd-cvs mailing list