diff -ur bc-stage/usr/src/cmd/setuname/setuname.c bc/usr/src/cmd/setuname/setuname.c
--- bc-stage/usr/src/cmd/setuname/setuname.c	Sat Jul 16 14:02:44 2005
+++ bc/usr/src/cmd/setuname/setuname.c	Sat Jul 16 13:16:16 2005
@@ -270,7 +270,7 @@
 
 	    /* Check length of the system name */
 	    if (strlen(s_arg) > (size_t)(SYS_NMLN-1)) {
-		(void) sprintf(msg, E_LONGNAME, s_arg);
+		(void) snprintf(msg, MM_MXTXTLN + 1, E_LONGNAME, s_arg);
 		stdmsg(MM_NRECOV, lbl, MM_ERROR, msg);
 		exit(EX_ERROR);
 	    }
@@ -281,7 +281,7 @@
 		if (!isalnum(*p) && (*p != '-') && (*p != '_')) ok = FALSE;
 	    }
 	    if (!ok || (p == s_arg)) {
-		(void) sprintf(msg, E_INVNAME, s_arg);
+		(void) snprintf(msg, MM_MXTXTLN + 1, E_INVNAME, s_arg);
 		stdmsg(MM_NRECOV, lbl, MM_ERROR, msg);
 		exit(EX_ERROR);
 	    }
@@ -293,7 +293,7 @@
 
 	    /* Check length of the network node-name */
 	    if (strlen(n_arg) > (size_t)(SYS_NMLN-1)) {
-		(void) sprintf(msg, E_LONGNODE, n_arg);
+		(void) snprintf(msg, MM_MXTXTLN + 1, E_LONGNODE, n_arg);
 		stdmsg(MM_NRECOV, lbl, MM_ERROR, msg);
 		exit(EX_ERROR);
 	    }
@@ -304,7 +304,7 @@
 		if (!isalnum(*p) && (*p != '-') && (*p != '_')) ok = FALSE;
 	    }
 	    if (!ok || (p == n_arg)) {
-		(void) sprintf(msg, E_INVNODE, n_arg);
+		(void) snprintf(msg, MM_MXTXTLN + 1, E_INVNODE, n_arg);
 		stdmsg(MM_NRECOV, lbl, MM_ERROR, msg);
 		exit(EX_ERROR);
 	    }
@@ -332,7 +332,7 @@
 		    exit(EX_ERROR);
 		} 
 		else {
-		    (void) sprintf(msg, E_NOSUCHDIR, RC_DIRNAME);
+		    (void) snprintf(msg, MM_MXTXTLN + 1, E_NOSUCHDIR, RC_DIRNAME);
 		    stdmsg(MM_NRECOV, lbl, MM_ERROR, msg);
 		    exit(EX_ERROR);
 		}
@@ -390,12 +390,16 @@
 	char	       *sysnm = (char *)NULL;		/* System name to set (from file or arg) */
 	char	       *nodenm = (char *)NULL;		/* Network node-name to set (from file or arg) */
 	FILE	       *fd;		/* Std I/O File Descriptor for /etc/rc2.d/S18setuname */
-	char	       *p;		/* Temp pointer */
 	void	      (*oldsighup)();	/* Function to call for SIGHUP */
 	void	      (*oldsigint)();	/* Function to call for SIGINT */
 	int		rtncd;		/* Value to return to the caller */
+#if u3b || u3b15 || u3b2
+	char	       *p;		/* Temp pointer */
 	unsigned long	symbtblsz;	/* The size of the kernel's symbol table, in bytes */
+#endif /* u3b || u3b15 || u3b2 */
+#ifndef sun
 	int		memfd;		/* File descriptor:  open kernel memory */
+#endif /* sun */
 	int		i;		/* Temp counter */	
 
 
@@ -453,7 +457,7 @@
 			(void) strncpy(utsname.nodename, nodename,
 			    sizeof (utsname.nodename));
 		(void) kvm_kwrite(kd, utsname_addr, &utsname, sizeof (utsname));
-		kvm_close(kd);
+		(void) kvm_close(kd);
 	} else
 		return (-1);
 #else /* sun */
