Module Name:    src
Committed By:   tron
Date:           Thu Nov 12 10:10:49 UTC 2009

Modified Files:
        src/usr.bin/xinstall: xinstall.c

Log Message:
Don't assume that "id_t", "gid_t" and "uid_t" use the same underlying type
and use the appropriate types instead. Tested under NetBSD 5.99.22
and Darwin 10.2.0.

This should fix one of the cross-builds under FreeBSD as reported by
Rhialto on the "current-users" mailing list.


To generate a diff of this commit:
cvs rdiff -u -r1.113 -r1.114 src/usr.bin/xinstall/xinstall.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/xinstall/xinstall.c
diff -u src/usr.bin/xinstall/xinstall.c:1.113 src/usr.bin/xinstall/xinstall.c:1.114
--- src/usr.bin/xinstall/xinstall.c:1.113	Fri Oct 30 20:57:30 2009
+++ src/usr.bin/xinstall/xinstall.c	Thu Nov 12 10:10:49 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: xinstall.c,v 1.113 2009/10/30 20:57:30 joerg Exp $	*/
+/*	$NetBSD: xinstall.c,v 1.114 2009/11/12 10:10:49 tron Exp $	*/
 
 /*
  * Copyright (c) 1987, 1993
@@ -46,7 +46,7 @@
 #if 0
 static char sccsid[] = "@(#)xinstall.c	8.1 (Berkeley) 7/21/93";
 #else
-__RCSID("$NetBSD: xinstall.c,v 1.113 2009/10/30 20:57:30 joerg Exp $");
+__RCSID("$NetBSD: xinstall.c,v 1.114 2009/11/12 10:10:49 tron Exp $");
 #endif
 #endif /* not lint */
 
@@ -88,7 +88,8 @@
 int	numberedbackup;
 int	mode = S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH;
 char	pathbuf[MAXPATHLEN];
-id_t	uid = -1, gid = -1;
+uid_t	uid = -1;
+gid_t	gid = -1;
 char	*group, *owner, *fflags, *tags;
 FILE	*metafp;
 char	*metafile;
@@ -312,13 +313,21 @@
 
 	/* get group and owner id's */
 	if (group && !dounpriv) {
-		if (gid_from_group(group, &gid) == -1 && ! parseid(group, &gid))
-			errx(1, "unknown group %s", group);
+		if (gid_from_group(group, &gid) == -1) {
+			id_t id;
+			if (!parseid(group, &id))
+				errx(1, "unknown group %s", group);
+			gid = id;
+		}
 		iflags |= HASGID;
 	}
 	if (owner && !dounpriv) {
-		if (uid_from_user(owner, &uid) == -1 && ! parseid(owner, &uid))
-			errx(1, "unknown user %s", owner);
+		if (uid_from_user(owner, &uid) == -1) {
+			id_t id;
+			if (!parseid(owner, &id))
+				errx(1, "unknown user %s", owner);
+			uid = id;
+		}
 		iflags |= HASUID;
 	}
 

Reply via email to