From seggers@semyam.dinoco.de  Mon Aug 10 12:05:58 1998
Received: from tim.xenologics.com (tim.xenologics.com [194.77.5.24])
          by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id MAA17983
          for <FreeBSD-gnats-submit@freebsd.org>; Mon, 10 Aug 1998 12:05:55 -0700 (PDT)
          (envelope-from seggers@semyam.dinoco.de)
Received: (from uucp@localhost)
	by tim.xenologics.com (8.8.5/8.8.8) with UUCP id VAA00782
	for FreeBSD-gnats-submit@freebsd.org; Mon, 10 Aug 1998 21:04:03 +0200 (MET DST)
Received: (from seggers@localhost)
	by semyam.dinoco.de (8.8.8/8.8.8) id VAA05533;
	Mon, 10 Aug 1998 21:00:55 +0200 (CEST)
	(envelope-from seggers)
Message-Id: <199808101900.VAA05533@semyam.dinoco.de>
Date: Mon, 10 Aug 1998 21:00:55 +0200 (CEST)
From: Stefan Eggers <seggers@semyam.dinoco.de>
Reply-To: seggers@semyam.dinoco.de
To: FreeBSD-gnats-submit@freebsd.org
Cc: seggers@semyam.dinoco.de
Subject: format string problems in sysinstall
X-Send-Pr-Version: 3.2

>Number:         7560
>Category:       bin
>Synopsis:       [PATCH] format string problems in sysinstall
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    jkh
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Aug 10 12:10:00 PDT 1998
>Closed-Date:    Mon Sep 14 12:03:42 PDT 1998
>Last-Modified:  Mon Sep 14 12:13:17 PDT 1998
>Originator:     Stefan Eggers
>Release:        FreeBSD 3.0-CURRENT i386
>Organization:
none
>Environment:

	-current sources cvsup'ed a few days ago.

>Description:

	While compiling sysinstall I notieced several warnings about
format string errors.  Turned out they are harmless with gcc on a
little endian machine as long as the values printed are small enough
and that's probably why nobody noticed a malfunction due to them.

	The ones in ufs.c are harmless I think but annoying.  Adding
casts makes them go away.

>How-To-Repeat:

	Try compiling sysinstall.  You'll see warnings from gcc about
wrong format strings.

>Fix:
	
	Actually three - one for each affected file.

Index: disks.c
===================================================================
RCS file: /usr2/FreeBSD/CVSROOT/src/release/sysinstall/disks.c,v
retrieving revision 1.98
diff -u -r1.98 disks.c
--- disks.c	1998/03/23 08:36:26	1.98
+++ disks.c	1998/08/10 18:41:10
@@ -309,7 +309,7 @@
 		int size, subtype;
 		chunk_e partitiontype;
 		
-		snprintf(tmp, 20, "%d", chunk_info[current_chunk]->size);
+		snprintf(tmp, 20, "%lu", chunk_info[current_chunk]->size);
 		val = msgGetInput(tmp, "Please specify the size for new FreeBSD slice in blocks\n"
 				  "or append a trailing `M' for megabytes (e.g. 20M).");
 		if (val && (size = strtol(val, &cp, 0)) > 0) {

Index: uc_eisa.c
===================================================================
RCS file: /usr2/FreeBSD/CVSROOT/src/release/sysinstall/uc_eisa.c,v
retrieving revision 1.4
diff -u -r1.4 uc_eisa.c
--- uc_eisa.c	1997/02/22 14:12:26	1.4
+++ uc_eisa.c	1998/08/10 18:54:05
@@ -142,7 +142,7 @@
 				     sizeof(struct eisa_driver));
 
   n=(char *)kv_to_u(kp, (u_int)edrv->name, 20);
-  asprintf(&epc->device, "%s%d", n, edn->dev.unit);
+  asprintf(&epc->device, "%s%lu", n, edn->dev.unit);
   free(n);
 
   n=(char *)kv_to_u(kp, (u_int)edn->dev.full_name, 40); /*XXX*/

Index: ufs.c
===================================================================
RCS file: /usr2/FreeBSD/CVSROOT/src/release/sysinstall/ufs.c,v
retrieving revision 1.12
diff -u -r1.12 ufs.c
--- ufs.c	1997/02/22 14:12:35	1.12
+++ ufs.c	1998/08/10 18:45:56
@@ -49,15 +49,15 @@
 
     if (isDebug())
 	msgDebug("Request for %s from UFS\n", file);
-    snprintf(buf, PATH_MAX, "%s/%s", dev->private, file);
+    snprintf(buf, PATH_MAX, "%s/%s", (char *)dev->private, file);
     if (file_readable(buf))
 	return fopen(buf, "r");
-    snprintf(buf, PATH_MAX, "%s/dists/%s", dev->private, file);
+    snprintf(buf, PATH_MAX, "%s/dists/%s", (char *)dev->private, file);
     if (file_readable(buf))
 	return fopen(buf, "r");
-    snprintf(buf, PATH_MAX, "%s/%s/%s", dev->private, variable_get(VAR_RELNAME), file);
+    snprintf(buf, PATH_MAX, "%s/%s/%s", (char *)dev->private, variable_get(VAR_RELNAME), file);
     if (file_readable(buf))
 	return fopen(buf, "r");
-    snprintf(buf, PATH_MAX, "%s/%s/dists/%s", dev->private, variable_get(VAR_RELNAME), file);
+    snprintf(buf, PATH_MAX, "%s/%s/dists/%s", (char *)dev->private, variable_get(VAR_RELNAME), file);
     return fopen(buf, "r");
 }
>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->jkh 
Responsible-Changed-By: wosch 
Responsible-Changed-When: Wed Aug 12 01:35:42 PDT 1998 
Responsible-Changed-Why:  
Jordans area. 
State-Changed-From-To: open->suspended 
State-Changed-By: phk 
State-Changed-When: Thu Aug 13 23:15:22 PDT 1998 
State-Changed-Why:  
awaiting jordans attention 
State-Changed-From-To: suspended->closed 
State-Changed-By: jkh 
State-Changed-When: Mon Sep 14 12:03:42 PDT 1998 
State-Changed-Why:  
Applied, thanks! 
>Unformatted:
