summaryrefslogtreecommitdiffstats
path: root/libutil/pw_util.c
diff options
context:
space:
mode:
authorPeter Grehan <grehan@FreeBSD.org>2012-04-26 07:52:28 +0000
committerPeter Grehan <grehan@FreeBSD.org>2012-04-26 07:52:28 +0000
commit08f2d2c14972fd8214be8e62704b0a8714ae15a9 (patch)
tree428218f4293355ba7d1e99722d1676fbde7e6e10 /libutil/pw_util.c
parentde100da053802312c0bbcd80656737e7ad38e106 (diff)
parent6731210db20a50877485e02554de9a6e3f20a0b7 (diff)
downloadpw-darwin-08f2d2c14972fd8214be8e62704b0a8714ae15a9.tar.gz
pw-darwin-08f2d2c14972fd8214be8e62704b0a8714ae15a9.zip
IFC @ r234692
sys/amd64/include/cpufunc.h sys/amd64/include/fpu.h sys/amd64/amd64/fpu.c sys/amd64/vmm/vmm.c - Add API to allow vmm FPU state init/save/restore. FP stuff discussed with: kib
Diffstat (limited to 'libutil/pw_util.c')
-rw-r--r--libutil/pw_util.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/libutil/pw_util.c b/libutil/pw_util.c
index 1068eff..63c63de 100644
--- a/libutil/pw_util.c
+++ b/libutil/pw_util.c
@@ -347,7 +347,8 @@ pw_edit(int notsetuid)
sigprocmask(SIG_SETMASK, &oldsigset, NULL);
if (stat(tempname, &st2) == -1)
return (-1);
- return (st1.st_mtime != st2.st_mtime);
+ return (st1.st_mtim.tv_sec != st2.st_mtim.tv_sec ||
+ st1.st_mtim.tv_nsec != st2.st_mtim.tv_nsec);
}
/*
@@ -406,7 +407,21 @@ pw_make(const struct passwd *pw)
pw->pw_passwd, (uintmax_t)pw->pw_uid, (uintmax_t)pw->pw_gid,
pw->pw_class, (uintmax_t)pw->pw_change, (uintmax_t)pw->pw_expire,
pw->pw_gecos, pw->pw_dir, pw->pw_shell);
- return line;
+ return (line);
+}
+
+/*
+ * Make a passwd line (in v7 format) out of a struct passwd
+ */
+char *
+pw_make_v7(const struct passwd *pw)
+{
+ char *line;
+
+ asprintf(&line, "%s:*:%ju:%ju:%s:%s:%s", pw->pw_name,
+ (uintmax_t)pw->pw_uid, (uintmax_t)pw->pw_gid,
+ pw->pw_gecos, pw->pw_dir, pw->pw_shell);
+ return (line);
}
/*