summaryrefslogtreecommitdiffstats
path: root/usr.sbin
diff options
context:
space:
mode:
authorbrooks <brooks@FreeBSD.org>2013-02-20 15:25:40 +0000
committerbrooks <brooks@FreeBSD.org>2013-02-20 15:25:40 +0000
commit4694fe43306e5877c32c38ad795b292384979060 (patch)
treec2a06dd246b9314e504f2834c38916c7376e9cef /usr.sbin
parentdabbf96e6dc93cae3d712c967b8297077e85c14c (diff)
downloadFreeBSD-src-4694fe43306e5877c32c38ad795b292384979060.zip
FreeBSD-src-4694fe43306e5877c32c38ad795b292384979060.tar.gz
Fix the -N option in manifest mode by using pwcache(3). This also
speeds up image creation appreciably. Reviewed by: marcel Sponsored by: DARPA, AFRL
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/makefs/mtree.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/usr.sbin/makefs/mtree.c b/usr.sbin/makefs/mtree.c
index f5eb5fc..12893df 100644
--- a/usr.sbin/makefs/mtree.c
+++ b/usr.sbin/makefs/mtree.c
@@ -508,8 +508,8 @@ read_mtree_keywords(FILE *fp, fsnode *node)
{
char keyword[PATH_MAX];
char *name, *p, *value;
- struct group *grent;
- struct passwd *pwent;
+ gid_t gid;
+ uid_t uid;
struct stat *st, sb;
intmax_t num;
u_long flset, flclr;
@@ -585,11 +585,10 @@ read_mtree_keywords(FILE *fp, fsnode *node)
error = ENOATTR;
break;
}
- grent = getgrnam(value);
- if (grent != NULL)
- st->st_gid = grent->gr_gid;
+ if (gid_from_group(value, &gid) == 0)
+ st->st_gid = gid;
else
- error = errno;
+ error = EINVAL;
} else
error = ENOSYS;
break;
@@ -698,11 +697,10 @@ read_mtree_keywords(FILE *fp, fsnode *node)
error = ENOATTR;
break;
}
- pwent = getpwnam(value);
- if (pwent != NULL)
- st->st_uid = pwent->pw_uid;
+ if (uid_from_user(value, &uid) == 0)
+ st->st_uid = uid;
else
- error = errno;
+ error = EINVAL;
} else
error = ENOSYS;
break;
OpenPOWER on IntegriCloud