summaryrefslogtreecommitdiffstats
path: root/pw/pw_conf.c
diff options
context:
space:
mode:
authorYuri Pankov <yuripv@FreeBSD.org>2018-10-15 20:11:53 +0000
committerYuri Pankov <yuripv@FreeBSD.org>2018-10-15 20:11:53 +0000
commiteb33f7f73f5a9995d6c1a3eb23f0aaa2de310a2c (patch)
treef5ef89db9a32a359a8453e7b9cd0bb842d167d66 /pw/pw_conf.c
parentbcfb085a8b157ca9c5e5943fd81ed045eb0e7ccc (diff)
downloadpw-darwin-eb33f7f73f5a9995d6c1a3eb23f0aaa2de310a2c.tar.gz
pw-darwin-eb33f7f73f5a9995d6c1a3eb23f0aaa2de310a2c.tar.zst
pw-darwin-eb33f7f73f5a9995d6c1a3eb23f0aaa2de310a2c.zip
pw: respect path specified using -V when writing pw.conf, and -C is not
explicitly specified. -V path is already used to determine which file to read default values from, so it's only logical to write them to the same file. PR: 231653 Reviewed by: eugen, bapt Approved by: re (gjb), kib (mentor) Differential Revision: https://reviews.freebsd.org/D17566
Diffstat (limited to 'pw/pw_conf.c')
-rw-r--r--pw/pw_conf.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/pw/pw_conf.c b/pw/pw_conf.c
index 36bb8b6..f7b98f1 100644
--- a/pw/pw_conf.c
+++ b/pw/pw_conf.c
@@ -417,9 +417,13 @@ write_userconfig(struct userconf *cnf, const char *file)
int i, j;
struct sbuf *buf;
FILE *fp;
+ char cfgfile[MAXPATHLEN];
- if (file == NULL)
- file = _PATH_PW_CONF;
+ if (file == NULL) {
+ snprintf(cfgfile, sizeof(cfgfile), "%s/" _PW_CONF,
+ conf.etcpath);
+ file = cfgfile;
+ }
if ((fd = open(file, O_CREAT|O_RDWR|O_TRUNC|O_EXLOCK, 0644)) == -1)
return (0);