Bug 28824

Summary: [patch] src/usr.sbin/burncd warning clean up
Product: Base System Reporter: mike <mike>
Component: binAssignee: Søren Schmidt <sos>
Status: Closed FIXED    
Severity: Affects Only Me CC: sos
Priority: Normal    
Version: 5.0-CURRENT   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
file.diff none

Description mike 2001-07-08 20:00:05 UTC
[An earlier version of this patch was sent directly to sos@FreeBSD.org,
 but I received no reply.]

o Clean up compile-time warnings.
o Set WARNS?=2
o Tested on i386 and alpha.

How-To-Repeat: 
N/A
Comment 1 Bruce Evans 2001-07-09 11:08:41 UTC
> Index: burncd/burncd.c
> ===================================================================
> RCS file: /home/ncvs/src/usr.sbin/burncd/burncd.c,v
> retrieving revision 1.13
> diff -u -r1.13 burncd.c
> --- burncd/burncd.c	2001/05/30 08:13:39	1.13
> +++ burncd/burncd.c	2001/07/08 18:25:50
> ...
> @@ -134,7 +134,7 @@
>  				err(EX_IOERR, "ioctl(CDIOREADTOCENTRY)");
>  			if (ioctl(fd, CDRIOCNEXTWRITEABLEADDR, &addr) < 0) 
>  				err(EX_IOERR, "ioctl(CDRIOCNEXTWRITEABLEADDR)");
> -			fprintf(stderr, "%d, %d\n", 
> +			fprintf(stderr, "%ul, %d\n", 
>  				ntohl(entry.entry.addr.lba), addr);

This breaks alphas.  ntohl() should return uint32_t (POSIX.1-200x-draft),
but ntohl() actually returns unsigned long on i386's and in_addr_t on
alphas, and both uint32_t and in_addr_t may be almost any unsigned integer
type, so ntohl() should always be cast to unsigned long (possibly spelled
as u_long) for printing.

Bruce
Comment 2 Mike Barcroft freebsd_committer freebsd_triage 2001-07-19 06:31:18 UTC
Responsible Changed
From-To: freebsd-bugs->sos


sos is the author of burncd(8).
Comment 3 Mike Barcroft freebsd_committer freebsd_triage 2001-07-19 06:46:43 UTC
This is an updated patch which addresses bde's concern regarding my
previous patch.  The warning was masked on alpha by a typo ('%ul'
instead of '%lu') in the fprintf(3) statement.

----------------------------------------------------------------------

burncd.20010719.patch
 
Index: burncd/Makefile
===================================================================
RCS file: /home/ncvs/src/usr.sbin/burncd/Makefile,v
retrieving revision 1.4
diff -u -r1.4 Makefile
--- burncd/Makefile	2001/03/26 14:39:38	1.4
+++ burncd/Makefile	2001/07/19 05:15:08
@@ -1,6 +1,7 @@
 # $FreeBSD: src/usr.sbin/burncd/Makefile,v 1.4 2001/03/26 14:39:38 ru Exp $
 
 PROG=	burncd
+WARNS?=	2
 MAN=	burncd.8
 
 .include <bsd.prog.mk>
Index: burncd/burncd.c
===================================================================
RCS file: /home/ncvs/src/usr.sbin/burncd/burncd.c,v
retrieving revision 1.13
diff -u -r1.13 burncd.c
--- burncd/burncd.c	2001/05/30 08:13:39	1.13
+++ burncd/burncd.c	2001/07/19 05:15:09
@@ -56,7 +56,7 @@
 {
 	int ch, arg, addr;
 	int eject=0, list=0, multi=0, preemp=0, speed=1, test_write=0;
-	char *devname = "/dev/acd0c", *prog_name;
+	const char *dev_name = "/dev/acd0c", *prog_name;
 	int block_size = 0;
 
 	prog_name = argv[0];
@@ -67,7 +67,7 @@
 			break;
 
 		case 'f':
-			devname = optarg;
+			dev_name = optarg;
 			break;
 
 		case 'l':
@@ -106,8 +106,8 @@
 	if (argc == 0)
 		usage(prog_name);
 
-	if ((fd = open(devname, O_RDWR, 0)) < 0)
-		err(EX_NOINPUT, "open(%s)", devname);
+	if ((fd = open(dev_name, O_RDWR, 0)) < 0)
+		err(EX_NOINPUT, "open(%s)", dev_name);
 
 	if (ioctl(fd, CDRIOCWRITESPEED, &speed) < 0) 
        		err(EX_IOERR, "ioctl(CDRIOCWRITESPEED)");
@@ -134,8 +134,8 @@
 				err(EX_IOERR, "ioctl(CDIOREADTOCENTRY)");
 			if (ioctl(fd, CDRIOCNEXTWRITEABLEADDR, &addr) < 0) 
 				err(EX_IOERR, "ioctl(CDRIOCNEXTWRITEABLEADDR)");
-			fprintf(stderr, "%d, %d\n", 
-				ntohl(entry.entry.addr.lba), addr);
+			fprintf(stderr, "%lu, %d\n", 
+				(u_long)ntohl(entry.entry.addr.lba), addr);
 
 			break;
 		}
@@ -207,7 +207,7 @@
 			while (fgets(file_buf, sizeof(file_buf), fp) != NULL) {
 				if (*file_buf == '#' || *file_buf == '\n')
 					continue;
-				if (eol = strchr(file_buf, '\n'))
+				if ((eol = strchr(file_buf, '\n')) != NULL)
 					*eol = NULL;
 				write_file(file_buf, block_size);
 			}
@@ -233,7 +233,7 @@
 }
 
 void
-cleanup(int dummy)
+cleanup(int dummy __unused)
 {
 	if (ioctl(fd, CDRIOCSETBLOCKSIZE, &saved_block_size) < 0) 
 		err(EX_IOERR, "ioctl(CDRIOCSETBLOCKSIZE)");
@@ -252,7 +252,7 @@
 {
 	int addr, count, file, filesize, size;
 	char buf[2352*BLOCKS];
-	struct stat stat;
+	struct stat filestat;
 	static int cdopen, done_stdin, tot_size = 0;
 
 	if (!strcmp(name, "-")) {
@@ -278,9 +278,9 @@
 	if (ioctl(fd, CDRIOCNEXTWRITEABLEADDR, &addr) < 0) 
        		err(EX_IOERR, "ioctl(CDRIOCNEXTWRITEABLEADDR)");
 
-	if (fstat(file, &stat) < 0)
+	if (fstat(file, &filestat) < 0)
 		err(EX_IOERR, "fstat(%s)", name);
-	filesize = stat.st_size / 1024;
+	filesize = filestat.st_size / 1024;
 
 	if (!quiet) {
 		fprintf(stderr, "next writeable LBA %d\n", addr);
Comment 4 Søren Schmidt freebsd_committer freebsd_triage 2001-12-12 14:03:46 UTC
State Changed
From-To: open->analyzed

Well, hmm, the changes might be right, I'll consider this 
for a future version of burncd.
Comment 5 Søren Schmidt freebsd_committer freebsd_triage 2002-01-07 19:23:51 UTC
State Changed
From-To: analyzed->closed

Somebody committed semilar fixes without getting the 
maintainer review :(