Module Name:    src
Committed By:   rillig
Date:           Fri Jan  3 16:16:14 UTC 2025

Modified Files:
        src/sbin/fdisk: Makefile fdisk.8 fdisk.c

Log Message:
fdisk: remove unreachable options 'T' and 't', fix lint warnings


To generate a diff of this commit:
cvs rdiff -u -r1.44 -r1.45 src/sbin/fdisk/Makefile
cvs rdiff -u -r1.92 -r1.93 src/sbin/fdisk/fdisk.8
cvs rdiff -u -r1.161 -r1.162 src/sbin/fdisk/fdisk.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/fdisk/Makefile
diff -u src/sbin/fdisk/Makefile:1.44 src/sbin/fdisk/Makefile:1.45
--- src/sbin/fdisk/Makefile:1.44	Sat Jun  3 09:09:12 2023
+++ src/sbin/fdisk/Makefile	Fri Jan  3 16:16:14 2025
@@ -1,13 +1,13 @@
-#	$NetBSD: Makefile,v 1.44 2023/06/03 09:09:12 lukem Exp $
+#	$NetBSD: Makefile,v 1.45 2025/01/03 16:16:14 rillig Exp $
 
-PROG=	fdisk 
+PROG=	fdisk
 SRCS=	fdisk.c
 
 MAN=	fdisk.8
 
 .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64"
 CPPFLAGS+= -DBOOTSEL
-.if (${HOSTPROG:U} == "")
+.if ${HOSTPROG:U} == ""
 CPPFLAGS+= -DUSE_DISKLIST
 .endif
 .endif
@@ -21,10 +21,13 @@ CPPFLAGS+= -D_PATH_DEFDISK='"/dev/rwd0c"
 .endif
 
 COPTS.fdisk.c+=	${CC_WNO_STRINGOP_TRUNCATION}
+LINTFLAGS+=	-X 117		# '>>' on signed value
+LINTFLAGS+=	-X 132		# conversion may lose accuracy
+LINTFLAGS+=	-X 298		# conversion in function call may lose accuracy
 
 .include <bsd.prog.mk>
 
-.if (${HOSTPROG:U} == "")
+.if ${HOSTPROG:U} == ""
 DPADD+=	${LIBUTIL} ${LIBZ}
 LDADD+=	-lutil -lz
 .endif

Index: src/sbin/fdisk/fdisk.8
diff -u src/sbin/fdisk/fdisk.8:1.92 src/sbin/fdisk/fdisk.8:1.93
--- src/sbin/fdisk/fdisk.8:1.92	Sun May 24 21:01:49 2020
+++ src/sbin/fdisk/fdisk.8	Fri Jan  3 16:16:14 2025
@@ -1,6 +1,6 @@
-.\"	$NetBSD: fdisk.8,v 1.92 2020/05/24 21:01:49 wiz Exp $
+.\"	$NetBSD: fdisk.8,v 1.93 2025/01/03 16:16:14 rillig Exp $
 .\"
-.Dd May 24, 2020
+.Dd January 3, 2025
 .Dt FDISK 8
 .Os
 .Sh NAME
@@ -17,8 +17,6 @@
 .Op Fl A Ar ptn_alignment Ns Bq Ar /ptn_0_offset
 .Op Fl b Ar cylinders/heads/sectors
 .Op Fl c Ar bootcode
-.Op Fl T Ar disktype
-.Op Fl t Ar disktab
 .Op Fl z Ar sectorsize
 .Op Ar device
 .Nm
@@ -226,12 +224,6 @@ an additional logical partition will be 
 Indicate that
 .Ar device
 is a regular file.
-Unless the geometry of
-.Ar device
-is told to
-.Nm
-by
-.Fl T Ar disktype ,
 .Nm
 will count the 512-byte sectors in
 .Ar device
@@ -308,18 +300,6 @@ If the optional arguments are not provid
 use the same defaults as the interactive mode, if new.
 This flag requires the use of a partition selection flag
 .Pq Fl 0 , 1 , 2 , 3 , No or Fl E Ar number .
-.It Fl T Ar disktype
-Use the disklabel
-.Ar disktype
-instead of the disklabel on
-.Ar device .
-.It Fl t Ar disktab
-Read
-.Ar disktype
-from the named
-.Xr disktab 5
-file instead of from
-.Pa /etc/disktab .
 .It Fl u
 Update partition data, including
 .Em id , start , No and Em size .

Index: src/sbin/fdisk/fdisk.c
diff -u src/sbin/fdisk/fdisk.c:1.161 src/sbin/fdisk/fdisk.c:1.162
--- src/sbin/fdisk/fdisk.c:1.161	Sat Apr  2 19:15:09 2022
+++ src/sbin/fdisk/fdisk.c	Fri Jan  3 16:16:14 2025
@@ -1,4 +1,4 @@
-/*	$NetBSD: fdisk.c,v 1.161 2022/04/02 19:15:09 mlelstv Exp $ */
+/*	$NetBSD: fdisk.c,v 1.162 2025/01/03 16:16:14 rillig Exp $ */
 
 /*
  * Mach Operating System
@@ -39,7 +39,7 @@
 #include <sys/cdefs.h>
 
 #ifndef lint
-__RCSID("$NetBSD: fdisk.c,v 1.161 2022/04/02 19:15:09 mlelstv Exp $");
+__RCSID("$NetBSD: fdisk.c,v 1.162 2025/01/03 16:16:14 rillig Exp $");
 #endif /* not lint */
 
 #define MBRPTYPENAMES
@@ -114,7 +114,7 @@ __RCSID("$NetBSD: fdisk.c,v 1.161 2022/0
 #define _PATH_DEFDISK	"/dev/rwd0d"
 #endif
 
-struct {
+static struct {
 	struct mbr_sector *ptn;		/* array of pbrs */
 	daddr_t		base;		/* first sector of ext. ptn */
 	daddr_t		limit;		/* last sector of ext. ptn */
@@ -138,7 +138,7 @@ static char *boot_path = NULL;			/* name
 #ifdef BOOTSEL
 #define BOOTSEL_OPTIONS	"B"
 #else
-#define BOOTSEL_OPTIONS	
+#define BOOTSEL_OPTIONS	""
 #define change_part(e, p, id, st, sz, bm) change__part(e, p, id, st, sz)
 #endif
 #define OPTIONS	BOOTSEL_OPTIONS "0123FSafgiIluvA:b:c:E:r:s:w:z:"
@@ -206,7 +206,6 @@ static unsigned int ptn_0_offset;	/* def
 
 static int fd = -1, wfd = -1, *rfd = &fd;
 static char *disk_file = NULL;
-static char *disk_type = NULL;
 
 static int a_flag;		/* set active partition */
 static int i_flag;		/* init bootcode */
@@ -393,7 +392,7 @@ main(int argc, char *argv[])
 	v_flag = 0;
 	E_flag = 0;
 	csysid = -1;
-	cstart = csize = ~0;
+	cstart = csize = ~0U;
 	while ((ch = getopt(argc, argv, OPTIONS)) != -1) {
 		switch (ch) {
 		case '0':
@@ -410,9 +409,10 @@ main(int argc, char *argv[])
 			break;
 		case 'E':	/* Extended partition number */
 			E_flag = 1;
-			partition = strtoul(optarg, &cp, 0);
-			if (*cp || partition < 0)
+			unsigned long ul = strtoul(optarg, &cp, 0);
+			if (*cp || ul > INT_MAX)
 				errx(1, "Bad partition number -E %s.", optarg);
+			partition = (int)ul;
 			break;
 #ifdef BOOTSEL
 		case 'B':	/* Bootselect parameters */
@@ -492,22 +492,11 @@ main(int argc, char *argv[])
 		case 'w':	/* write data to disk_file */
 			disk_file = optarg;
 			break;
-		case 't':
-			if (setdisktab(optarg) == -1)
-				errx(EXIT_FAILURE, "bad disktab");
-			break;
-		case 'T':
-			disk_type = optarg;
-			break;
 		case 'z':
 			secsize = atoi(optarg);
-			if (secsize <= 512)
-out:				 errx(EXIT_FAILURE, "Invalid sector size %zd",
+			if (secsize <= 512 || (secsize & (secsize - 1)) != 0)
+				errx(EXIT_FAILURE, "Invalid sector size %zd",
 				    secsize);
-			for (ch = secsize; (ch & 1) == 0; ch >>= 1)
-				continue;
-			if (ch != 1)
-				goto out;
 			break;
 		default:
 			usage();
@@ -516,9 +505,6 @@ out:				 errx(EXIT_FAILURE, "Invalid sec
 	argc -= optind;
 	argv += optind;
 
-	if (disk_type != NULL && getdiskbyname(disk_type) == NULL)
-		errx(EXIT_FAILURE, "bad disktype");
-
 	if (sh_flag && (a_flag || i_flag || u_flag || f_flag || s_flag))
 		usage();
 
@@ -978,7 +964,7 @@ is_all_zero(const unsigned char *p, size
  * diagnosing boot failures.
  */
 static void
-print_pbr(daddr_t sector, int indent, uint8_t part_type)
+print_pbr(daddr_t sector, int indent, uint8_t part_type __unused)
 {
 	struct mbr_sector pboot;
 	unsigned char *p, *endp;
@@ -1092,9 +1078,6 @@ read_boot(const char *name, void *buf, s
 		goto fail;
 	}
 
-	/*
-	 * Do some sanity checking here
-	 */
 	if (((struct mbr_sector *)buf)->mbr_magic != LE_MBR_MAGIC) {
 		warnx("%s: invalid magic", boot_path);
 		goto fail;
@@ -1135,7 +1118,7 @@ init_sector0(int zappart)
 		mboot.mbr_bootsel_magic = bootcode[0].mbr_bootsel_magic;
 	}
 	mboot.mbr_magic = LE_MBR_MAGIC;
-	
+
 	if (!zappart)
 		return;
 	for (i = 0; i < MBR_PART_COUNT; i++)
@@ -1229,7 +1212,7 @@ get_diskname(const char *fullname, char 
 		return;
 	}
 	while (isdigit((unsigned char)*p2))
-		p2++; 
+		p2++;
 
 	len = p2 - p;
 	if (len > size) {
@@ -1237,7 +1220,7 @@ get_diskname(const char *fullname, char 
 		strlcpy(diskname, fullname, size);
 		return;
 	}
- 
+
 	memcpy(diskname, p, len);
 	diskname[len] = 0;
 }
@@ -1690,7 +1673,7 @@ intuit_translated_geometry(void)
 				break;
 			}
 		}
-		if (xheads != -1)	
+		if (xheads != -1)
 			break;
 	}
 
@@ -1906,7 +1889,7 @@ check_overlap(int part, int sysid, daddr
 	}
 
 	/* Check we haven't cut space allocated to an extended ptn */
-	
+
 	if (!MBR_IS_EXTENDED(sysid)) {
 		/* no longer an extended partition */
 		if (fix) {
@@ -2087,7 +2070,7 @@ change_part(int extended, int part, int 
 			}
 			if (size == (daddr_t)0xffffffff) {
 				size = le32toh(partp->mbrp_size);
-				if (size == 0) 
+				if (size == 0)
 					size = disksectors - start;
 			}
 		}
@@ -2461,7 +2444,6 @@ change_bios_geometry(void)
 				" (%"PRIdaddr" sectors, %dMB)\n",
 			    i, bip->bi_cyl, bip->bi_head, bip->bi_sec,
 			    bip->bi_lbasecs, SEC_TO_MB(bip->bi_lbasecs));
-				
 		}
 		printf("\n");
 	}
@@ -2513,7 +2495,7 @@ open_disk(int update)
 				warnx("%s is not a character device", namebuf);
 			else
 				warn("cannot opendisk %s", namebuf);
-			return (-1);
+			return -1;
 		}
 		disk = namebuf;
 	} else {
@@ -2527,7 +2509,7 @@ open_disk(int update)
 	if (get_params() == -1) {
 		close(fd);
 		fd = -1;
-		return (-1);
+		return -1;
 	}
 	if (disk_file != NULL) {
 		/* for testing: read/write data from a disk file */
@@ -2540,7 +2522,7 @@ open_disk(int update)
 		}
 	} else
 		wfd = fd;
-	return (0);
+	return 0;
 }
 
 static ssize_t
@@ -2570,7 +2552,7 @@ read_disk(daddr_t sector, void *buf)
 	memcpy(buf, &iobuf[mod], 512);
 
 	return 512;
-}	
+}
 
 static ssize_t
 write_disk(daddr_t sector, void *buf)
@@ -2619,19 +2601,11 @@ guess_geometry(daddr_t _sectors)
 static int
 get_params(void)
 {
-	if (disk_type != NULL) {
-		struct disklabel *tmplabel;
-
-		if ((tmplabel = getdiskbyname(disk_type)) == NULL) {
-			warn("%s: bad disktype", disk);
-			return (-1);
-		}
-		disklabel = *tmplabel;
-	} else if (F_flag) {
+	if (F_flag) {
 		struct stat st;
 		if (fstat(fd, &st) == -1) {
 			warn("%s: fstat", disk);
-			return (-1);
+			return -1;
 		}
 		if (st.st_size % 512 != 0) {
 			warnx("%s size (%ju) is not divisible "
@@ -2650,7 +2624,7 @@ get_params(void)
 		warn("%s: DIOCGDEFLABEL", disk);
 		if (ioctl(fd, DIOCGDINFO, &disklabel) == -1) {
 			warn("%s: DIOCGDINFO", disk);
-			return (-1);
+			return -1;
 		}
 	}
 #endif
@@ -2672,7 +2646,7 @@ get_params(void)
 	}
 	dos_disksectors = disksectors;
 
-	return (0);
+	return 0;
 }
 
 #ifdef BOOTSEL
@@ -2858,7 +2832,7 @@ yesno(const char *str, ...)
 		ch = getchar();
 	if (ch == EOF)
 		errx(1, "EOF");
-	return (first == 'y' || first == 'Y');
+	return first == 'y' || first == 'Y';
 }
 
 static int64_t
@@ -3005,22 +2979,22 @@ type_match(const void *key, const void *
 	const struct mbr_ptype *ptr = item;
 
 	if (*idp < ptr->id)
-		return (-1);
+		return -1;
 	if (*idp > ptr->id)
-		return (1);
-	return (0);
+		return 1;
+	return 0;
 }
 
 static const char *
 get_type(int type)
 {
-	struct mbr_ptype *ptr;
+	const struct mbr_ptype *ptr;
 
 	ptr = bsearch(&type, mbr_ptypes, KNOWN_SYSIDS,
 	    sizeof(mbr_ptypes[0]), type_match);
-	if (ptr == 0)
-		return ("unknown");
-	return (ptr->name);
+	if (ptr == NULL)
+		return "unknown";
+	return ptr->name;
 }
 
 static int

Reply via email to