]> git.cameronkatri.com Git - bsdgames-darwin.git/blobdiff - snake/snscore/snscore.c
Increase spending on vowels. No object file diffs.
[bsdgames-darwin.git] / snake / snscore / snscore.c
index b5f57cf39dc04b2d73f9fa3a3d7c3a50be5c8bfb..b09d5180e95af78ae9919f0bf599d9275c5b9bb6 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: snscore.c,v 1.9 1999/09/08 21:18:00 jsm Exp $  */
+/*     $NetBSD: snscore.c,v 1.17 2008/07/20 01:03:22 lukem Exp $       */
 
 /*
  * Copyright (c) 1980, 1993
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
+ * 3. Neither the name of the University nor the names of its contributors
  *    may be used to endorse or promote products derived from this software
  *    without specific prior written permission.
  *
 
 #include <sys/cdefs.h>
 #ifndef lint
-__COPYRIGHT("@(#) Copyright (c) 1980, 1993\n\
      The Regents of the University of California.  All rights reserved.\n");
+__COPYRIGHT("@(#) Copyright (c) 1980, 1993\
The Regents of the University of California.  All rights reserved.");
 #endif /* not lint */
 
 #ifndef lint
 #if 0
 static char sccsid[] = "@(#)snscore.c  8.1 (Berkeley) 7/19/93";
 #else
-__RCSID("$NetBSD: snscore.c,v 1.9 1999/09/08 21:18:00 jsm Exp $");
+__RCSID("$NetBSD: snscore.c,v 1.17 2008/07/20 01:03:22 lukem Exp $");
 #endif
 #endif /* not lint */
 
@@ -53,6 +49,7 @@ __RCSID("$NetBSD: snscore.c,v 1.9 1999/09/08 21:18:00 jsm Exp $");
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <unistd.h>
 #include "pathnames.h"
 
 const char *recfile = _PATH_RAWSCORES;
@@ -64,7 +61,7 @@ struct        player  {
        char    *name;
 } players[MAXPLAYERS], temp;
 
-int    main __P((void));
+int    main(void);
 
 int
 main()
@@ -77,18 +74,24 @@ main()
        const   char *q;
        struct  passwd  *p;
 
+       /* Revoke setgid privileges */
+       setgid(getgid());
+
        fd = fopen(recfile, "r");
        if (fd == NULL)
                err(1, "opening `%s'", recfile);
        printf("Snake players scores to date\n");
-       fread(&whoallbest, sizeof(short), 1, fd);
+       if (fread(&whoallbest, sizeof(short), 1, fd) == 0) {
+               printf("No scores recorded yet!\n");
+               exit(0);
+       }
        fread(&allbest, sizeof(short), 1, fd);
        noplayers = 0;
        for (uid = 2; ;uid++) {
                if(fread(&score, sizeof(short), 1, fd) == 0)
                        break;
                if (score > 0) {
-                       if (noplayers > MAXPLAYERS) {
+                       if (noplayers >= MAXPLAYERS) {
                                printf("too many players\n");
                                exit(2);
                        }
@@ -98,8 +101,9 @@ main()
                        if (p == NULL)
                                continue;
                        q = p -> pw_name;
-                       players[noplayers].name = malloc(strlen(q) + 1);
-                       strcpy(players[noplayers].name, q);
+                       players[noplayers].name = strdup(q);
+                       if (players[noplayers].name == NULL)
+                               err(1, NULL);
                        noplayers++;
                }
        }