>Synopsis:      boggle(6) boardspec is broken
>Category:      user
>Environment:
        System      : OpenBSD 6.0
        Details     : OpenBSD 6.0-current (GENERIC.MP) #0: Wed Sep  7 18:51:12 
PDT 2016
                         
[email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP

        Architecture: OpenBSD.amd64
        Machine     : amd64
>Description:
variable ncubes is used before initialization
causes program to always exit when a boardspec is given
>How-To-Repeat:
Using the example command from line 34 of the boggle helpfile:

$ boggle nolezeebnqieegei
usage: boggle [-Bbcd] [-t time] [-w length] [+[+]] [boardspec]
>Fix:
move initialization of ncubes from init() to just before it's used in main()
broken since init() was added in revision 1.17

Index: src/games/boggle/boggle/bog.c
===================================================================
RCS file: /cvs/src/games/boggle/boggle/bog.c,v
retrieving revision 1.31
diff -u -p -u -r1.31 bog.c
--- src/games/boggle/boggle/bog.c       27 Aug 2016 02:00:10 -0000      1.31
+++ src/games/boggle/boggle/bog.c       12 Sep 2016 05:40:51 -0000
@@ -140,6 +140,8 @@ main(int argc, char *argv[])
                argv += 1;
        }
 
+       ncubes = grid * grid;
+
        if (argc > 0) {
                if (islower((unsigned char)argv[0][0])) {
                        if (strlen(argv[0]) != ncubes) {
@@ -674,7 +676,6 @@ init(void)
 {
        int i;
 
-       ncubes = grid * grid;
        if (minlength == -1)
                minlength = grid - 1;
        init_adjacencies();

Reply via email to