summaryrefslogtreecommitdiffstats
path: root/canfield
diff options
context:
space:
mode:
Diffstat (limited to 'canfield')
-rw-r--r--canfield/canfield/canfield.c10
-rw-r--r--canfield/cfscores/cfscores.c7
2 files changed, 13 insertions, 4 deletions
diff --git a/canfield/canfield/canfield.c b/canfield/canfield/canfield.c
index f13e1eb9..854bf2eb 100644
--- a/canfield/canfield/canfield.c
+++ b/canfield/canfield/canfield.c
@@ -1,4 +1,4 @@
-/* $NetBSD: canfield.c,v 1.14 1999/09/09 17:30:19 jsm Exp $ */
+/* $NetBSD: canfield.c,v 1.15 1999/09/12 09:02:20 jsm Exp $ */
/*
* Copyright (c) 1980, 1993
@@ -43,7 +43,7 @@ __COPYRIGHT("@(#) Copyright (c) 1980, 1993\n\
#if 0
static char sccsid[] = "@(#)canfield.c 8.1 (Berkeley) 5/31/93";
#else
-__RCSID("$NetBSD: canfield.c,v 1.14 1999/09/09 17:30:19 jsm Exp $");
+__RCSID("$NetBSD: canfield.c,v 1.15 1999/09/12 09:02:20 jsm Exp $");
#endif
#endif /* not lint */
@@ -1683,8 +1683,14 @@ initall()
if (uid < 0)
uid = 0;
dbfd = open(_PATH_SCORE, O_RDWR);
+
+ /* Revoke setgid privileges */
+ setregid(getgid(), getgid());
+
if (dbfd < 0)
return;
+ if (dbfd < 3)
+ exit(1);
i = lseek(dbfd, uid * sizeof(struct betinfo), SEEK_SET);
if (i < 0) {
close(dbfd);
diff --git a/canfield/cfscores/cfscores.c b/canfield/cfscores/cfscores.c
index 84216877..b4a291b5 100644
--- a/canfield/cfscores/cfscores.c
+++ b/canfield/cfscores/cfscores.c
@@ -1,4 +1,4 @@
-/* $NetBSD: cfscores.c,v 1.7 1999/09/08 21:17:46 jsm Exp $ */
+/* $NetBSD: cfscores.c,v 1.8 1999/09/12 09:02:20 jsm Exp $ */
/*
* Copyright (c) 1983, 1993
@@ -43,7 +43,7 @@ __COPYRIGHT("@(#) Copyright (c) 1983, 1993\n\
#if 0
static char sccsid[] = "@(#)cfscores.c 8.1 (Berkeley) 5/31/93";
#else
-__RCSID("$NetBSD: cfscores.c,v 1.7 1999/09/08 21:17:46 jsm Exp $");
+__RCSID("$NetBSD: cfscores.c,v 1.8 1999/09/12 09:02:20 jsm Exp $");
#endif
#endif /* not lint */
@@ -79,6 +79,9 @@ main(argc, argv)
struct passwd *pw;
int uid;
+ /* Revoke setgid privileges */
+ setregid(getgid(), getgid());
+
if (argc > 2) {
printf("Usage: cfscores [user]\n");
exit(1);