Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 15 Oct 2018 20:11:53 +0000 (UTC)
From:      Yuri Pankov <yuripv@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r339369 - head/usr.sbin/pw
Message-ID:  <201810152011.w9FKBrgQ068303@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: yuripv
Date: Mon Oct 15 20:11:53 2018
New Revision: 339369
URL: https://svnweb.freebsd.org/changeset/base/339369

Log:
  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

Modified:
  head/usr.sbin/pw/pw.h
  head/usr.sbin/pw/pw_conf.c
  head/usr.sbin/pw/pw_utils.c

Modified: head/usr.sbin/pw/pw.h
==============================================================================
--- head/usr.sbin/pw/pw.h	Mon Oct 15 19:48:36 2018	(r339368)
+++ head/usr.sbin/pw/pw.h	Mon Oct 15 20:11:53 2018	(r339369)
@@ -64,6 +64,7 @@ enum _which
 };
 
 #define	_DEF_DIRMODE	(S_IRWXU | S_IRWXG | S_IRWXO)
+#define	_PW_CONF	"pw.conf"
 #define _PATH_PW_CONF	"/etc/pw.conf"
 #define _UC_MAXLINE	1024
 #define _UC_MAXSHELLS	32

Modified: head/usr.sbin/pw/pw_conf.c
==============================================================================
--- head/usr.sbin/pw/pw_conf.c	Mon Oct 15 19:48:36 2018	(r339368)
+++ head/usr.sbin/pw/pw_conf.c	Mon Oct 15 20:11:53 2018	(r339369)
@@ -417,9 +417,13 @@ write_userconfig(struct userconf *cnf, const char *fil
 	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);

Modified: head/usr.sbin/pw/pw_utils.c
==============================================================================
--- head/usr.sbin/pw/pw_utils.c	Mon Oct 15 19:48:36 2018	(r339368)
+++ head/usr.sbin/pw/pw_utils.c	Mon Oct 15 20:11:53 2018	(r339369)
@@ -71,7 +71,7 @@ get_userconfig(const char *config)
 
 	if (config != NULL)
 		return (read_userconfig(config));
-	snprintf(defaultcfg, sizeof(defaultcfg), "%s/pw.conf", conf.etcpath);
+	snprintf(defaultcfg, sizeof(defaultcfg), "%s/" _PW_CONF, conf.etcpath);
 	return (read_userconfig(defaultcfg));
 }
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201810152011.w9FKBrgQ068303>