summaryrefslogtreecommitdiffstats
path: root/pw/edgroup.c
diff options
context:
space:
mode:
authorNate Williams <nate@FreeBSD.org>1998-07-16 17:18:25 +0000
committerNate Williams <nate@FreeBSD.org>1998-07-16 17:18:25 +0000
commit953e54b3c1853cbc2a959f96455184ffb137b124 (patch)
tree9fc0a883af71bc75dd6293dd3a4f8cd6e974e1ea /pw/edgroup.c
parent5f7820db4e9629fa29eb39fecc10ab190a7d1da5 (diff)
downloadpw-darwin-953e54b3c1853cbc2a959f96455184ffb137b124.tar.gz
pw-darwin-953e54b3c1853cbc2a959f96455184ffb137b124.tar.zst
pw-darwin-953e54b3c1853cbc2a959f96455184ffb137b124.zip
Fix race condition in pw caused by multiple instances of pwd_mkdb being
run at the same time. Notes: The fileupdate function is still somewhat broken. Instead of returning a failure code if it can't modify the original file it renames the .new file and continues as though nothing is wrong. This will cause the lock on the original file to be lost and could lead to a similar race condition. I left that portion of the code alone since I feel that the maintainer of the code would have a better concept of how he wants to handle errors in that function than I do. PR: bin/6787 Submitted by: Craig Spannring <cts@internetcds.com>
Diffstat (limited to 'pw/edgroup.c')
-rw-r--r--pw/edgroup.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/pw/edgroup.c b/pw/edgroup.c
index c927b06..6116fa6 100644
--- a/pw/edgroup.c
+++ b/pw/edgroup.c
@@ -26,7 +26,7 @@
#ifndef lint
static const char rcsid[] =
- "$Id$";
+ "$Id: edgroup.c,v 1.5 1997/10/10 06:23:30 charnier Exp $";
#endif /* not lint */
#include <stdio.h>
@@ -64,7 +64,7 @@ editgroups(char *name, char **groups)
int rc = 0;
int infd;
- if ((infd = open(groupfile, O_RDWR | O_CREAT | O_EXLOCK, 0644)) != -1) {
+ if ((infd = open(groupfile, O_RDWR | O_CREAT, 0644)) != -1) {
FILE *infp;
if ((infp = fdopen(infd, "r+")) == NULL)