]> git.cameronkatri.com Git - bsdgames-darwin.git/commitdiff
Remove global scratch string buffer. Don't zoom off the end while reading
authordholland <dholland@NetBSD.org>
Thu, 4 Jun 2009 06:47:36 +0000 (06:47 +0000)
committerdholland <dholland@NetBSD.org>
Thu, 4 Jun 2009 06:47:36 +0000 (06:47 +0000)
user input, either.

gomoku/gomoku.h
gomoku/main.c

index 5f2382fb5fabe68db05a3f2a536a37031a78a469..87229e10e88736a10eb188caca7cdbab369aa9c3 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: gomoku.h,v 1.14 2009/06/04 06:41:50 dholland Exp $     */
+/*     $NetBSD: gomoku.h,v 1.15 2009/06/04 06:47:36 dholland Exp $     */
 
 /*
  * Copyright (c) 1994
@@ -246,7 +246,6 @@ struct overlap_info {
 };
 
 extern const char      *letters;
-extern char    fmtbuf[];
 extern const char      pdir[];
 
 extern const int     dd[4];
index 3f19106a92d44a4a3a82552a82b5a2fd61b9fd13..2789416bf581d8948b3035071fe6d5f919ea4ead 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: main.c,v 1.16 2009/06/04 06:27:47 dholland Exp $       */
+/*     $NetBSD: main.c,v 1.17 2009/06/04 06:47:36 dholland Exp $       */
 
 /*
  * Copyright (c) 1994
@@ -42,7 +42,7 @@ __COPYRIGHT("@(#) Copyright (c) 1994\
 #if 0
 static char sccsid[] = "@(#)main.c     8.4 (Berkeley) 5/4/95";
 #else
-__RCSID("$NetBSD: main.c,v 1.16 2009/06/04 06:27:47 dholland Exp $");
+__RCSID("$NetBSD: main.c,v 1.17 2009/06/04 06:47:36 dholland Exp $");
 #endif
 #endif /* not lint */
 
@@ -69,7 +69,6 @@ FILE  *debugfp;               /* file for debug output */
 FILE   *inputfp;               /* file for debug input */
 
 const char     pdir[4]         = "-\\|/";
-char   fmtbuf[128];
 
 struct spotstr board[BAREA];           /* info for board */
 struct combostr frames[FAREA];         /* storage for all frames */
@@ -333,14 +332,15 @@ again:
 int
 readinput(FILE *fp)
 {
-       char *cp;
        int c;
+       char buf[128];
+       size_t pos;
 
-       cp = fmtbuf;
-       while ((c = getc(fp)) != EOF && c != '\n')
-               *cp++ = c;
-       *cp = '\0';
-       return (ctos(fmtbuf));
+       pos = 0;
+       while ((c = getc(fp)) != EOF && c != '\n' && pos < sizeof(buf) - 1)
+               buf[pos++] = c;
+       buf[pos] = '\0';
+       return ctos(buf);
 }
 
 #ifdef DEBUG