diff --git a/games/backgammon/backgammon/main.c b/games/backgammon/backgammon/main.c index 6d18876ea3c..97f0c6a937f 100644 --- a/games/backgammon/backgammon/main.c +++ b/games/backgammon/backgammon/main.c @@ -104,6 +104,11 @@ char **argv; register int l; /* non-descript index */ register char c; /* non-descript character storage */ long t; /* time for random num generator */ + uid_t uid; + + /*Drop the privilege.*/ + uid = getuid(); + setreuid (uid,uid); /* initialization */ bflag = 2; /* default no board */ diff --git a/games/backgammon/common_source/save.c b/games/backgammon/common_source/save.c index 80030e792a2..b25e19494dc 100644 --- a/games/backgammon/common_source/save.c +++ b/games/backgammon/common_source/save.c @@ -87,7 +87,6 @@ register int n; writec (*fs++); } *fs = '\0'; - setreuid(geteuid(), getuid()); if ((fdesc = open(fname,2)) == -1 && errno == 2) { if ((fdesc = creat (fname,0700)) != -1) break; @@ -130,7 +129,6 @@ register int n; write (fdesc,&gvalue,sizeof gvalue); write (fdesc,&raflag,sizeof raflag); close (fdesc); - setreuid(geteuid(), getuid()); if (tflag) curmove (18,0); writel (saved); @@ -150,7 +148,6 @@ char *s; register int i; int fdesc; - setreuid(geteuid(), getuid()); if ((fdesc = open (s,0)) == -1) norec (s); read (fdesc,board,sizeof board); @@ -165,7 +162,6 @@ char *s; read (fdesc,&gvalue,sizeof gvalue); read (fdesc,&raflag,sizeof raflag); close (fdesc); - setreuid(geteuid(), getuid()); rflag = 1; } diff --git a/games/backgammon/teachgammon/teach.c b/games/backgammon/teachgammon/teach.c index 7761ee6ed5c..bae186c304b 100644 --- a/games/backgammon/teachgammon/teach.c +++ b/games/backgammon/teachgammon/teach.c @@ -42,6 +42,8 @@ static char sccsid[] = "@(#)teach.c 8.1 (Berkeley) 5/31/93"; #endif /* not lint */ #include +#include +#include #include "back.h" char *hello[]; @@ -78,6 +80,11 @@ char **argv; { register int i; + uid_t uid; + + /*Drop the privilege.*/ + uid = getuid(); + setreuid (uid,uid); acnt = 1; signal (2,getout);