Bug 1833823 - Zork crashes (after some commands)
Summary: Zork crashes (after some commands)
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: zork
Version: 33
Hardware: All
OS: Linux
low
high
Target Milestone: ---
Assignee: Justin W. Flory (Fedora)
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-05-10 21:27 UTC by Štefan Gurský
Modified: 2021-03-21 20:24 UTC (History)
1 user (show)

Fixed In Version: zork-1.0.2-6.fc33 zork-1.0.2-6.fc32 zork-1.0.3-1.fc33 zork-1.0.3-1.fc32 zork-1.0.3-1.el8 zork-1.0.3-1.el7 zork-1.0.3-1.fc34
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2021-02-26 01:08:48 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Štefan Gurský 2020-05-10 21:27:45 UTC
Description of problem:
After running zork, trying to
get mail
crashes it.

Version-Release number of selected component (if applicable):
Name        : zork
Version     : 1.0.2
Release     : 3.fc32
Architecture: x86_64


How reproducible:
On two machines with F31 and one with F32.

Steps to Reproduce:
1. run zork
2. write „get mail“ as a command
3. observe crash

Actual results:
Segfault

Expected results:
Appropriate response from the game (in thes case: „I don't understand that.“) and a prompt for the next command.

Additional info:
If I compile zork from github sources, I do not get the crash.

It seems that it crashes on any input that has multiple words.

First observed after these four commands: west, east, climb, get egg (response from locally compiled game: „Taken“).


$ gdb -q zork
Reading symbols from zork...
Reading symbols from /usr/lib/debug/usr/bin/zork-1.0.2-3.fc32.x86_64.debug...
(gdb) run
Starting program: /usr/bin/zork 
Missing separate debuginfos, use: dnf debuginfo-install glibc-2.31-2.fc32.x86_64
Welcome to Dungeon.			This version created 11-MAR-91.
You are in an open field west of a big white house with a boarded
front door.
There is a small mailbox here.
>foo bar

Program received signal SIGSEGV, Segmentation fault.
sparse_ (lbuf=0x7fffffffd54c, lbuf@entry=0x7fffffffd550, llnt=3, vbflag=vbflag@entry=1) at np1.c:128
128		for (j = 1; j <= i__2; j += 3) {
Missing separate debuginfos, use: dnf debuginfo-install ncurses-libs-6.1-15.20191109.fc32.x86_64
(gdb) bt full
#0  sparse_ (lbuf=0x7fffffffd54c, lbuf@entry=0x7fffffffd550, llnt=3, vbflag=vbflag@entry=1) at np1.c:128
        ret_val = -1
        i__1 = 3
        i__2 = <optimized out>
        i = 3
        j = 44617
        obj = <optimized out>
        prep = 0
        lbuf1 = 3258
        lbuf2 = 0
#1  0x000000000040b494 in parse_ (inbuf=<optimized out>, vbflag=vbflag@entry=1) at np.c:91
        i__1 = <optimized out>
        ret_val = 0
        outbuf = {10215, 0, 3258, 0 <repeats 37 times>}
        outlnt = <optimized out>
#2  0x0000000000404322 in game_ () at dgame.c:55
        f = <optimized out>
        i = <optimized out>
#3  0x00000000004013af in main (argc=<optimized out>, argv=<optimized out>) at dmain.c:21
No locals.
(gdb) quit
A debugging session is active.

	Inferior 1 [process 84486] will be killed.

Quit anyway? (y or n) y

Comment 1 Justin W. Flory (Fedora) 2020-05-12 00:22:53 UTC
Hi Štefan. You are sure it worked without changes when you compiled upstream? The Fedora package does carry one additional patch, but it does not change much:

https://src.fedoraproject.org/rpms/zork/blob/master/f/zork-tweak-makefile.patch

If you can confirm the game works when compiled directly from F32, I will try to spend some time debugging more with the original source.

Comment 2 Štefan Gurský 2020-05-14 04:01:05 UTC
Yes, I am sure (the last message "The game is over" is when I press Ctrl+D to exit the game)

[stevko@localhost Devel]$ git clone -q https://github.com/devshane/zork.git
[stevko@localhost Devel]$ cd zork/
[stevko@localhost zork]$ make -s
local.c: In function ‘wizard’:
local.c:73:9: warning: implicit declaration of function ‘getuid’ [-Wimplicit-function-declaration]
   73 |     if (getuid() == 0 || getuid() == WIZARDID)
      |         ^~~~~~
[stevko@localhost zork]$ ./zork 
Welcome to Dungeon.			This version created 11-MAR-91.
You are in an open field west of a big white house with a boarded
front door.
There is a small mailbox here.
>get mail
I don't understand that.
>foo bar
I can't see one here.
>west
You are in a forest, with trees in all directions around you.
>east
You are in a dimly lit forest, with large trees all around.  One
particularly large tree with some low branches stands here.
>climb 
You are about ten feet above the ground nestled among some large
branches.  The nearest branch above you is beyond your reach.
On the branch is a small birds nest.
The birds nest contains:
  A jewel-encrusted egg.
>get egg
Taken.
>The game is over.


And it also works with the patch.

[stevko@localhost Devel]$ git clone -q https://github.com/devshane/zork.git
[stevko@localhost Devel]$ cd zork/
[stevko@localhost zork]$ git apply < ../zork-tweak-makefile.patch
[stevko@localhost zork]$ make -s
[stevko@localhost zork]$ ./zork
Welcome to Dungeon.			This version created 11-MAR-91.
You are in an open field west of a big white house with a boarded
front door.
There is a small mailbox here.
>get mail
I don't understand that.
>foo bar
I can't see one here.
>west
You are in a forest, with trees in all directions around you.
>east
You are in a dimly lit forest, with large trees all around.  One
particularly large tree with some low branches stands here.
>climb
You are about ten feet above the ground nestled among some large
branches.  The nearest branch above you is beyond your reach.
On the branch is a small birds nest.
The birds nest contains:
  A jewel-encrusted egg.
>get egg
Taken.
>The game is over.

Comment 3 Justin W. Flory (Fedora) 2020-06-10 18:43:07 UTC
I appreciate the confirmation and follow-up. I am not a C programmer or very familiar with low-level languages. This is hard for me to know how to debug, since I guess the issue is somewhere in the Fedora build process? I will see if I can find some help to debug this further.

Comment 4 Ben Cotton 2020-08-11 15:35:10 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 33 development cycle.
Changing version to 33.

Comment 5 sonik 2020-11-01 18:13:58 UTC
building from git source with the rpmbuild options causes same crash.

13:12:07 [sonik@razorback src]$ git clone https://github.com/devshane/zork.git
Cloning into 'zork'...
remote: Enumerating objects: 76, done.
remote: Total 76 (delta 0), reused 0 (delta 0), pack-reused 76
Receiving objects: 100% (76/76), 250.45 KiB | 3.74 MiB/s, done.
Resolving deltas: 100% (19/19), done.
13:12:28 [sonik@razorback src]$ cd zork
13:12:32 [sonik@razorback zork]$ /usr/bin/make -O -j6 V=1 VERBOSE=1 'CFLAGS=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' DATADIR=/usr/share/zork 'LDFLAGS=-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld'
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection   -c -o actors.o actors.c
actors.c: In function ‘aappli_’:
actors.c:111:39: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  111 |     if (play_1.here == rindex_1.scorr && (prsvec_1.prso == xsrch_1.xnorth ||
actors.c:17:13: warning: variable ‘f’ set but not used [-Wunused-but-set-variable]
   17 |     logical f;
      |             ^
actors.c: In function ‘thiefd_’:
actors.c:320:26: warning: suggest parentheses around ‘+’ in operand of ‘&’ [-Wparentheses]
  320 |   objcts_1.oflag1[i - 1] & VISIBT + TAKEBT) !=
      |                          ^
actors.c:344:44: warning: suggest parentheses around ‘+’ in operand of ‘&’ [-Wparentheses]
  344 |   prob_(80, 60) || (objcts_1.oflag1[i - 1] &
      |                                            ^
actors.c:373:43: warning: suggest parentheses around ‘+’ in operand of ‘&’ [-Wparentheses]
  373 |     if ((rooms_1.rflag[hack_1.thfpos - 1] & RLAND + RSACRD +
      |                                           ^
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection   -c -o ballop.o ballop.c
ballop.c: In function ‘ballop_’:
ballop.c:118:13: warning: suggest parentheses around ‘+’ in operand of ‘&’ [-Wparentheses]
  118 |      LITEBT & ~ (TAKEBT + READBT);
      |             ^
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection   -c -o clockr.o clockr.c
clockr.c: In function ‘cevapp_’:
clockr.c:570:36: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  570 |      play_1.here >= rindex_1.fore1 && play_1.here < rindex_1.clear;
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection   -c -o demons.o demons.c
demons.c: In function ‘fightd_’:
demons.c:22:13: warning: variable ‘f’ set but not used [-Wunused-but-set-variable]
   22 |     logical f;
      |             ^
demons.c: In function ‘blow_’:
demons.c:210:19: warning: variable ‘oa’ set but not used [-Wunused-but-set-variable]
  210 |     integer i, j, oa, ra, od, mi, dv, def;
      |                   ^~
demons.c:209:13: warning: variable ‘f’ set but not used [-Wunused-but-set-variable]
  209 |     logical f;
      |             ^
demons.c: In function ‘infest_’:
demons.c:593:11: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  593 |   1] == r && hack_1.thfact;
demons.c:597:40: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  597 |   rindex_1.mrgw || r == rindex_1.inmir && findex_1.mloc ==
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
  598 |   rindex_1.mrg;
      |   ~~~~~~~~~~~~                          
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -DALLOW_GDT -c dgame.c
dgame.c: In function ‘game_’:
dgame.c:21:13: warning: variable ‘f’ set but not used [-Wunused-but-set-variable]
   21 |     logical f;
      |             ^
dgame.c: In function ‘xendmv_’:
dgame.c:212:13: warning: variable ‘f’ set but not used [-Wunused-but-set-variable]
  212 |     logical f;
      |             ^
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -DALLOW_GDT -DTEXTFILE=\"/usr/share/zork/dtextc.dat\" -c dinit.c
dinit.c: In function ‘init_’:
dinit.c:104:34: warning: variable ‘recno’ set but not used [-Wunused-but-set-variable]
  104 |     integer xmax, r2max, dirmax, recno;
      |                                  ^~~~~
dinit.c:104:26: warning: variable ‘dirmax’ set but not used [-Wunused-but-set-variable]
  104 |     integer xmax, r2max, dirmax, recno;
      |                          ^~~~~~
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection   -c -o dso1.o dso1.c
dso1.c: In function ‘princr_’:
dso1.c:25:49: warning: suggest parentheses around ‘+’ in operand of ‘&’ [-Wparentheses]
   25 |  if (! qhere_(i, rm) || (objcts_1.oflag1[i - 1] & VISIBT +
      |                                                 ^
dso1.c:30:54: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
   30 |  if (! (full) && (findex_1.superf || findex_1.brieff && (
dso1.c:61:49: warning: suggest parentheses around ‘+’ in operand of ‘&’ [-Wparentheses]
   61 |  if (! qhere_(i, rm) || (objcts_1.oflag1[i - 1] & VISIBT +
      |                                                 ^
dso1.c:69:45: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
   69 |  if ((objcts_1.oflag1[i - 1] & TRANBT) == 0 && (
      |      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
   70 |   objcts_1.oflag2[i - 1] & OPENBT) == 0 || qempty_(i))
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
dso1.c: In function ‘invent_’:
dso1.c:144:16: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  143 |   VISIBT) == 0 || (objcts_1.oflag1[j - 1] &
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~
  144 |   TRANBT) == 0 && (objcts_1.oflag2[j - 1] &
      |   ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
  145 |   OPENBT) == 0) {
      |   ~~~~~~~~~~~~  
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection   -c -o dso3.o dso3.c
dso3.c: In function ‘fwim_’:
dso3.c:109:53: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
  109 |  if (~ (nocare) & (objcts_1.oflag1[i - 1] & TAKEBT) == 0 || (
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
dso3.c:110:37: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  109 |  if (~ (nocare) & (objcts_1.oflag1[i - 1] & TAKEBT) == 0 || (
      |                                                             ~
  110 |   objcts_1.oflag1[i - 1] & f1) == 0 && (objcts_1.oflag2[i - 1]
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
  111 |   & f2) == 0) {
      |   ~~~~~~~~~~                         
dso3.c:137:10: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  136 |       VISIBT) == 0 || (objcts_1.oflag1[j - 1] & f1) ==
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  137 |        0 && (objcts_1.oflag2[j - 1] & f2) == 0) {
      |        ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dso3.c: In function ‘yesno_’:
dso3.c:178:12: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  178 |     (void) fgets(ans, sizeof ans, stdin);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection   -c -o dso2.o dso2.c
dso2.c: In function ‘moveto_’:
dso2.c:59:15: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
   59 |     if (! lnr && nlv || lnr && lhr && nlv && bits != RLAND) {
      |         ~~~~~~^~~~~~
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection   -c -o dmain.o dmain.c
In file included from dmain.c:11:
vars.h:411:4: warning: missing braces around initializer [-Wmissing-braces]
  411 |  = { 66, 67, 68, 69, 70, 71, 72, 65, 73 }
      |    ^
      |      {                                  }
dmain.c:13:6: warning: return type of ‘main’ is not ‘int’ [-Wmain]
   13 | void main(argc, argv)
      |      ^~~~
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection   -c -o dso5.o dso5.c
dso5.c: In function ‘lit_’:
dso5.c:121:41: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  120 |  if ((objcts_1.oflag1[i - 1] & VISIBT) == 0 || (
      |                                                ~
  121 |   objcts_1.oflag1[i - 1] & TRANBT) == 0 && (
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
  122 |   objcts_1.oflag2[i - 1] & OPENBT) == 0) {
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
dso5.c: In function ‘weight_’:
dso5.c:166:20: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  166 |  if (qhere_(i, rm) && rm != 0 || objcts_1.oadv[i - 1] == ad && ad
      |      ~~~~~~~~~~~~~~^~~~~~~~~~
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection   -c -o dso4.o dso4.c
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection   -c -o dso6.o dso6.c
dso6.c: In function ‘ghere_’:
dso6.c:56:36: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
   56 |     ret_val = rm >= rindex_1.fore1 && rm < rindex_1.clear || rm ==
      |               ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
dso6.c:70:35: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
   70 |     ret_val = rm >= rindex_1.bkvw && rm <= rindex_1.bkbox || rm ==
      |               ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
dso6.c:77:35: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
   77 |     ret_val = rm >= rindex_1.bkvw && rm < rindex_1.bkbox || rm ==
      |               ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
dso6.c:84:38: warning: suggest parentheses around ‘+’ in operand of ‘&’ [-Wparentheses]
   84 |     ret_val = (rooms_1.rflag[rm - 1] & RWATER + RFILL) != 0;
      |                                      ^
dso6.c:90:34: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
   90 |     ret_val = rm >= rindex_1.mrc && rm <= rindex_1.mrd || rm >=
      |               ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
dso6.c:97:34: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
   97 |     ret_val = rm >= rindex_1.mra && rm <= rindex_1.mrd || rm ==
      |               ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
dso6.c:110:34: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  110 |     ret_val = rm >= rindex_1.mra && rm <= rindex_1.mrc || rm >=
      |               ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
dso6.c: In function ‘mrhere_’:
dso6.c:165:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  165 |     if (rm < findex_1.mloc && findex_1.mdir < 180 || rm > findex_1.mloc &&
      |         ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection   -c -o dso7.o dso7.c
dso7.c: In function ‘cpgoto_’:
dso7.c:79:4: warning: suggest parentheses around ‘+’ in operand of ‘&’ [-Wparentheses]
   79 |    & ACTRBT + VILLBT) == 0) {
      |    ^
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection   -c -o dsub.o dsub.c
dsub.c: In function ‘rspsb2nl_’:
dsub.c:84:47: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘long int’ [-Wformat=]
   84 |  fprintf(stderr, "Error seeking database loc %d\n", x);
      |                                              ~^     ~
      |                                               |     |
      |                                               int   long int
      |                                              %ld
dsub.c:96:51: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘long int’ [-Wformat=]
   96 |      fprintf(stderr, "Error reading database loc %d\n", x);
      |                                                  ~^     ~
      |                                                   |     |
      |                                                   int   long int
      |                                                  %ld
dsub.c:114:48: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘long int’ [-Wformat=]
  114 |   fprintf(stderr, "Error seeking database loc %d\n", iloc);
      |                                               ~^     ~~~~
      |                                                |     |
      |                                                int   long int
      |                                               %ld
dsub.c: In function ‘jigsup_’:
dsub.c:283:13: warning: variable ‘f’ set but not used [-Wunused-but-set-variable]
  283 |     logical f;
      |             ^
dsub.c: In function ‘rmdesc_’:
dsub.c:546:18: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  545 |     if (full == 0 && (findex_1.superf || (rooms_1.rflag[play_1.here - 1] &
      |                                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  546 |      RSEEN) != 0 && findex_1.brieff)) {
      |      ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection   -c -o dverb1.o dverb1.c
dverb1.c: In function ‘take_’:
dverb1.c:69:16: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
   69 |     if (x != 0 && objcts_1.oadv[x - 1] == play_1.winner || weight_(0,
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb1.c: In function ‘drop_’:
dverb1.c:111:13: warning: variable ‘f’ set but not used [-Wunused-but-set-variable]
  111 |     logical f;
      |             ^
dverb1.c: In function ‘put_’:
dverb1.c:216:41: warning: suggest parentheses around ‘+’ in operand of ‘&’ [-Wparentheses]
  216 |      objcts_1.oflag1[prsvec_1.prsi - 1] & DOORBT +
      |                                         ^
dverb1.c: In function ‘valuac_’:
dverb1.c:372:14: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  372 |   savep == v && objcts_1.otval[prsvec_1.prso - 1] <= 0) {
      |   ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb1.c:398:3: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  397 |  if (objcts_1.oadv[prsvec_1.prso - 1] != play_1.winner || savep == v
      |                                                           ~~~~~~~~~~
  398 |   && objcts_1.otval[prsvec_1.prso - 1] <= 0) {
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb1.c:421:48: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  421 |   prsvec_1.prso == prsvec_1.prsi || savep == v &&
      |                                     ~~~~~~~~~~~^~
  422 |   objcts_1.otval[prsvec_1.prso - 1] <= 0 || (objcts_1.oflag1[
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
dverb1.c:343:13: warning: variable ‘f1’ set but not used [-Wunused-but-set-variable]
  343 |     logical f1;
      |             ^~
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection   -c -o dverb2.o dverb2.c
dverb2.c: In function ‘rstrgm_’:
dverb2.c:126:11: warning: suggest parentheses around comparison in operand of ‘|’ [-Wparentheses]
  126 |     if (i != vers_1.vmaj | j != vers_1.vmin) {
      |         ~~^~~~~~~~~~~~~~
dverb2.c: In function ‘cxappl_’:
dverb2.c:472:58: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
  472 |     findex_1.frobzf = objcts_1.oroom[oindex_1.bills - 1] != 0 &
dverb2.c:493:38: warning: suggest parentheses around ‘-’ inside ‘<<’ [-Wparentheses]
  493 |     curxt_1.xroom1 = (curxt_1.xroom1 - rindex_1.mra << 1) + rindex_1.mrae;
dverb2.c:518:20: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  518 |     if (ldir > 180 && ! findex_1.mr1f || ldir < 180 && ! findex_1.mr2f) {
      |         ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
dverb2.c:553:66: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  553 |     if (! findex_1.mropnf || (findex_1.mdir + 270) % 360 != ldir &&
      |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
  554 |      prsvec_1.prso != xsrch_1.xexit) {
      |      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                               
dverb2.c:557:37: warning: suggest parentheses around ‘-’ inside ‘<<’ [-Wparentheses]
  557 |     curxt_1.xroom1 = (findex_1.mloc - rindex_1.mra << 1) + rindex_1.mrae + 1
dverb2.c:575:66: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  575 |     if (! findex_1.wdopnf || (findex_1.mdir + 180) % 360 != ldir &&
      |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
  576 |      prsvec_1.prso != xsrch_1.xexit) {
      |      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                               
dverb2.c: In function ‘rstrgm_’:
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:122:5: note: in expansion of macro ‘do_uio’
  122 |     do_uio(1, &i, sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:123:5: note: in expansion of macro ‘do_uio’
  123 |     do_uio(1, &j, sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:124:5: note: in expansion of macro ‘do_uio’
  124 |     do_uio(1, &k, sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:130:5: note: in expansion of macro ‘do_uio’
  130 |     do_uio(1, &play_1.winner, sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:131:5: note: in expansion of macro ‘do_uio’
  131 |     do_uio(1, &play_1.here, sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:132:5: note: in expansion of macro ‘do_uio’
  132 |     do_uio(1, &hack_1.thfpos, sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:133:5: note: in expansion of macro ‘do_uio’
  133 |     do_uio(1, &play_1.telflg, sizeof(logical));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:134:5: note: in expansion of macro ‘do_uio’
  134 |     do_uio(1, &hack_1.thfflg, sizeof(logical));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:135:5: note: in expansion of macro ‘do_uio’
  135 |     do_uio(1, &hack_1.thfact, sizeof(logical));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:136:5: note: in expansion of macro ‘do_uio’
  136 |     do_uio(1, &hack_1.swdact, sizeof(logical));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:137:5: note: in expansion of macro ‘do_uio’
  137 |     do_uio(1, &hack_1.swdsta, sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:138:5: note: in expansion of macro ‘do_uio’
  138 |     do_uio(64, &puzzle_1.cpvec[0], sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:140:5: note: in expansion of macro ‘do_uio’
  140 |     do_uio(1, &time_1.pltime, sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:141:5: note: in expansion of macro ‘do_uio’
  141 |     do_uio(1, &state_1.moves, sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:142:5: note: in expansion of macro ‘do_uio’
  142 |     do_uio(1, &state_1.deaths, sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:143:5: note: in expansion of macro ‘do_uio’
  143 |     do_uio(1, &state_1.rwscor, sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:144:5: note: in expansion of macro ‘do_uio’
  144 |     do_uio(1, &state_1.egscor, sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:145:5: note: in expansion of macro ‘do_uio’
  145 |     do_uio(1, &state_1.mxload, sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:146:5: note: in expansion of macro ‘do_uio’
  146 |     do_uio(1, &state_1.ltshft, sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:147:5: note: in expansion of macro ‘do_uio’
  147 |     do_uio(1, &state_1.bloc, sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:148:5: note: in expansion of macro ‘do_uio’
  148 |     do_uio(1, &state_1.mungrm, sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:149:5: note: in expansion of macro ‘do_uio’
  149 |     do_uio(1, &state_1.hs, sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:150:5: note: in expansion of macro ‘do_uio’
  150 |     do_uio(1, &screen_1.fromdr, sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:151:5: note: in expansion of macro ‘do_uio’
  151 |     do_uio(1, &screen_1.scolrm, sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:152:5: note: in expansion of macro ‘do_uio’
  152 |     do_uio(1, &screen_1.scolac, sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:154:5: note: in expansion of macro ‘do_uio’
  154 |     do_uio(220, &objcts_1.odesc1[0], sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:155:5: note: in expansion of macro ‘do_uio’
  155 |     do_uio(220, &objcts_1.odesc2[0], sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:156:5: note: in expansion of macro ‘do_uio’
  156 |     do_uio(220, &objcts_1.oflag1[0], sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:157:5: note: in expansion of macro ‘do_uio’
  157 |     do_uio(220, &objcts_1.oflag2[0], sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:158:5: note: in expansion of macro ‘do_uio’
  158 |     do_uio(220, &objcts_1.ofval[0], sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:159:5: note: in expansion of macro ‘do_uio’
  159 |     do_uio(220, &objcts_1.otval[0], sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:160:5: note: in expansion of macro ‘do_uio’
  160 |     do_uio(220, &objcts_1.osize[0], sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:161:5: note: in expansion of macro ‘do_uio’
  161 |     do_uio(220, &objcts_1.ocapac[0], sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:162:5: note: in expansion of macro ‘do_uio’
  162 |     do_uio(220, &objcts_1.oroom[0], sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:163:5: note: in expansion of macro ‘do_uio’
  163 |     do_uio(220, &objcts_1.oadv[0], sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:164:5: note: in expansion of macro ‘do_uio’
  164 |     do_uio(220, &objcts_1.ocan[0], sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:166:5: note: in expansion of macro ‘do_uio’
  166 |     do_uio(200, &rooms_1.rval[0], sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:167:5: note: in expansion of macro ‘do_uio’
  167 |     do_uio(200, &rooms_1.rflag[0], sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:169:5: note: in expansion of macro ‘do_uio’
  169 |     do_uio(4, &advs_1.aroom[0], sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:170:5: note: in expansion of macro ‘do_uio’
  170 |     do_uio(4, &advs_1.ascore[0], sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:171:5: note: in expansion of macro ‘do_uio’
  171 |     do_uio(4, &advs_1.avehic[0], sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:172:5: note: in expansion of macro ‘do_uio’
  172 |     do_uio(4, &advs_1.astren[0], sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:173:5: note: in expansion of macro ‘do_uio’
  173 |     do_uio(4, &advs_1.aflag[0], sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:175:5: note: in expansion of macro ‘do_uio’
  175 |     do_uio(46, &flags[0], sizeof(logical));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:176:5: note: in expansion of macro ‘do_uio’
  176 |     do_uio(22, &switch_[0], sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:177:5: note: in expansion of macro ‘do_uio’
  177 |     do_uio(4, &vill_1.vprob[0], sizeof(integer));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:178:5: note: in expansion of macro ‘do_uio’
  178 |     do_uio(25, &cevent_1.cflag[0], sizeof(logical));
      |     ^~~~~~
dverb2.c:120:8: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  120 |  (void)fread((char *)(zbuf), (cbytes), (i), e)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dverb2.c:179:5: note: in expansion of macro ‘do_uio’
  179 |     do_uio(25, &cevent_1.ctick[0], sizeof(integer));
      |     ^~~~~~
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection   -c -o lightp.o lightp.c
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -DALLOW_GDT -c local.c
local.c: In function ‘wizard’:
local.c:73:9: warning: implicit declaration of function ‘getuid’ [-Wimplicit-function-declaration]
   73 |     if (getuid() == 0 || getuid() == WIZARDID)
      |         ^~~~~~
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -DALLOW_GDT -c gdt.c
gdt.c: In function ‘gdt_’:
gdt.c:58:12: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   58 |     (void) fgets(buf, sizeof buf, stdin);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gdt.c:107:12: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  107 |     (void) fgets(buf, sizeof buf, stdin);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gdt.c:121:12: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  121 |     (void) fgets(buf, sizeof buf, stdin);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gdt.c:138:12: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  138 |     (void) fgets(buf, sizeof buf, stdin);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gdt.c:405:12: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  405 |     (void) fgets(buf, sizeof buf, stdin);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gdt.c:542:12: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  542 |     (void) fgets(buf, sizeof buf, stdin);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gdt.c:557:12: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  557 |     (void) fgets(buf, sizeof buf, stdin);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gdt.c:571:12: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  571 |     (void) fgets(buf, sizeof buf, stdin);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gdt.c:589:12: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  589 |     (void) fgets(buf, sizeof buf, stdin);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gdt.c:596:12: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  596 |     (void) fgets(buf, sizeof buf, stdin);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gdt.c:619:12: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  619 |     (void) fgets(buf, sizeof buf, stdin);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gdt.c:634:12: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  634 |     (void) fgets(buf, sizeof buf, stdin);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gdt.c:681:12: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  681 |     (void) fgets(buf, sizeof buf, stdin);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gdt.c:721:12: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  721 |     (void) fgets(buf, sizeof buf, stdin);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gdt.c:751:12: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  751 |     (void) fgets(buf, sizeof buf, stdin);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gdt.c:781:12: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  781 |     (void) fgets(buf, sizeof buf, stdin);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection   -c -o nobjs.o nobjs.c
nobjs.c: In function ‘nobjs_’:
nobjs.c:309:21: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  309 |      rindex_1.fore1 && play_1.here < rindex_1.clear)) {
nobjs.c:616:62: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  616 |     if (play_1.here == rindex_1.ncell || findex_1.lcell == 4 && (play_1.here
nobjs.c:27:13: warning: variable ‘av’ set but not used [-Wunused-but-set-variable]
   27 |     integer av, wl;
      |             ^~
nobjs.c:23:13: warning: variable ‘f’ set but not used [-Wunused-but-set-variable]
   23 |     logical f;
      |             ^
nobjs.c: In function ‘mirpan_’:
nobjs.c:884:18: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  884 |     if (num == 1 && ! findex_1.mr1f || num == 2 && ! findex_1.mr2f) {
      |         ~~~~~~~~~^~~~~~~~~~~~~~~~~~
nobjs.c:897:22: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  897 |      vindex_1.examiw && prsvec_1.prsa != vindex_1.lookw) {
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection   -c -o np1.o np1.c
In file included from np1.c:14:
parse.h:61:4: warning: missing braces around initializer [-Wmissing-braces]
   61 |  = { 2164, 0, 4200, 0, 15160, 0, 1600, 0, 2160, 0, 32325, 0,
      |    ^
      |      {
   62 |      29654, 0, 11800, 0, 26335, 5005, 0, 0 }
      |                                            }
parse.h:81:4: warning: missing braces around initializer [-Wmissing-braces]
   81 |  = { 24885, 28800, 1, 37180, 12800, 2, 34369, 22680, 2, 32338,
      |    ^
      |      {
......
   84 |      0, 9, 24560, 0, 10, 24246, 0, 11 }
      |                                       }
parse.h:109:4: warning: missing braces around initializer [-Wmissing-braces]
  109 |  = { 22400, 0, 1024, 23018, 32320, 1024, 30400, 0, 5120, 8000, 0,
      |    ^
      |      {
......
  116 |      15360 }
      |            }
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection   -c -o np2.o np2.c
np2.c: In function ‘schlst_’:
np2.c:172:3: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  170 |  if ((objcts_1.oflag1[i - 1] & VISIBT) == 0 || (rm == 0 || !
      |                                                ~~~~~~~~~~~~~
  171 |   qhere_(i, rm)) && (cn == 0 || objcts_1.ocan[i - 1] != cn)
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  172 |   && (ad == 0 || objcts_1.oadv[i - 1] != ad)) {
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
np2.c:219:45: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  218 |      if ((objcts_1.oflag1[x - 1] & VISIBT) == 0 || (
      |                                                    ~
  219 |       objcts_1.oflag1[x - 1] & TRANBT) == 0 && (
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
  220 |       objcts_1.oflag2[x - 1] & OPENBT) == 0 || (
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection   -c -o np.o np.c
np.c: In function ‘parse_’:
np.c:111:23: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
  111 |     if (prsvec_1.prso > 0 & prsvec_1.prso < xsrch_1.xmin) {
np.c: In function ‘lex_’:
np.c:222:8: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
  222 |  if (j >= dlimit[i - 1] & j <= dlimit[i]) {
      |      ~~^~~~~~~~~~~~~~~~
np.c:241:12: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
  241 |     if (cp == 0 & *op == 1) {
      |         ~~~^~~~
np.c: In function ‘parse_’:
np.c:176:5: warning: array subscript -1 is outside array bounds of ‘integer[40]’ {aka ‘int[40]’} [-Warray-bounds]
  176 |     --outbuf;
      |     ^~~~~~~~
np.c:75:13: note: while referencing ‘outbuf’
   75 |     integer outbuf[40], outlnt;
      |             ^~~~~~
np.c:176:5: warning: array subscript -1 is outside array bounds of ‘integer[40]’ {aka ‘int[40]’} [-Warray-bounds]
  176 |     --outbuf;
      |     ^~~~~~~~
np.c:75:13: note: while referencing ‘outbuf’
   75 |     integer outbuf[40], outlnt;
      |             ^~~~~~
np.c:176:5: warning: array subscript -1 is outside array bounds of ‘integer[40]’ {aka ‘int[40]’} [-Warray-bounds]
  176 |     --outbuf;
      |     ^~~~~~~~
np.c:75:13: note: while referencing ‘outbuf’
   75 |     integer outbuf[40], outlnt;
      |             ^~~~~~
np.c:176:5: warning: array subscript -1 is outside array bounds of ‘integer[40]’ {aka ‘int[40]’} [-Warray-bounds]
  176 |     --outbuf;
      |     ^~~~~~~~
np.c:75:13: note: while referencing ‘outbuf’
   75 |     integer outbuf[40], outlnt;
      |             ^~~~~~
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection   -c -o np3.o np3.c
np3.c: In function ‘syneql_’:
np3.c:289:49: warning: suggest parentheses around arithmetic in operand of ‘|’ [-Wparentheses]
  289 |     ret_val = prep == (sprep & VPMASK) && (sfl1 & objcts_1.oflag1[
      |                                            ~~~~~^~~~~~~~~~~~~~~~~~
  290 |      obj - 1] | sfl2 & objcts_1.oflag2[obj - 1]) != 0;
      |      ~~~~~~~~                                    
np3.c: In function ‘takeit_’:
np3.c:396:16: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  396 |     if (x != 0 && objcts_1.oadv[x - 1] == play_1.winner || weight_(0, obj,
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection   -c -o nrooms.o nrooms.c
nrooms.c: In function ‘lookto_’:
nrooms.c:459:17: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  459 |     if (m1 == 1 && ! findex_1.mr1f || m1 == 2 && ! findex_1.mr2f) {
      |         ~~~~~~~~^~~~~~~~~~~~~~~~~~
nrooms.c: In function ‘ewtell_’:
nrooms.c:512:12: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  512 |     if (m1 && ! findex_1.mr1f || ! m1 && ! findex_1.mr2f) {
      |         ~~~^~~~~~~~~~~~~~~~~~
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection   -c -o objcts.o objcts.c
objcts.c: In function ‘oappli_’:
objcts.c:301:43: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  301 |     if ((prsvec_1.prsa != vindex_1.attacw && prsvec_1.prsa != vindex_1.killw
objcts.c:303:22: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  303 |      vindex_1.swingw && prsvec_1.prsa != vindex_1.throww ||
objcts.c:763:40: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  763 |     if (prsvec_1.prsa != vindex_1.eatw && prsvec_1.prsa != vindex_1.throww ||
objcts.c:925:39: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  925 |     if (findex_1.mloc == rindex_1.mrc && findex_1.mdir == 180 ||
objcts.c:23:13: warning: variable ‘f’ set but not used [-Wunused-but-set-variable]
   23 |     logical f;
      |             ^
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection   -c -o sobjs.o sobjs.c
sobjs.c: In function ‘sobjs_’:
sobjs.c:861:38: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  861 |      prsvec_1.prsi != oindex_1.hook1 && prsvec_1.prsi !=
sobjs.c:21:13: warning: variable ‘f’ set but not used [-Wunused-but-set-variable]
   21 |     logical f;
      |             ^
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection   -c -o rooms.o rooms.c
rooms.c: In function ‘rappl1_’:
rooms.c:182:45: warning: suggest parentheses around ‘+’ in operand of ‘&’ [-Wparentheses]
  182 |     if ((objcts_1.oflag2[oindex_1.door - 1] & OPENBT +
      |                                             ^
rooms.c:239:71: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  239 |     if (findex_1.rvclr != 0 || qhere_(oindex_1.leave, rindex_1.clear) && (
      |                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
  240 |      prsvec_1.prsa != vindex_1.movew || prsvec_1.prso !=
      |      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
  241 |      oindex_1.leave)) {
      |      ~~~~~~~~~~~~~~~                                                   
rooms.c:18:13: warning: variable ‘f’ set but not used [-Wunused-but-set-variable]
   18 |     logical f;
      |             ^
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection   -c -o verbs.o verbs.c
verbs.c: In function ‘vappli_’:
verbs.c:660:29: warning: suggest parentheses around ‘+’ in operand of ‘&’ [-Wparentheses]
  660 |      objcts_1.oflag1[j - 1] & DOORBT + CONTBT) == 0))
      |                             ^
verbs.c:802:41: warning: suggest parentheses around ‘+’ in operand of ‘&’ [-Wparentheses]
  802 |     if ((rooms_1.rflag[play_1.here - 1] & RWATER + RFILL) !=
      |                                         ^
verbs.c:899:45: warning: suggest parentheses around ‘+’ in operand of ‘&’ [-Wparentheses]
  899 |     if ((objcts_1.oflag1[prsvec_1.prsi - 1] & FLAMBT +
      |                                             ^
verbs.c:931:55: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  931 |     if (qhere_(prsvec_1.prso, play_1.here) || av != 0 && j == av) {
      |                                               ~~~~~~~~^~~~~~~~~~
verbs.c:942:43: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  942 |     if (qhere_(j, play_1.here) || av != 0 && objcts_1.ocan[j - 1] == av) {
      |                                   ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
verbs.c:1161:45: warning: suggest parentheses around ‘+’ in operand of ‘&’ [-Wparentheses]
 1161 |     if ((objcts_1.oflag2[prsvec_1.prso - 1] & VILLBT +
      |                                             ^
verbs.c:1288:21: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
 1288 |      oindex_1.wnort && prsvec_1.prso <= oindex_1.wnort + 3)) {
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection  -c supp.c	
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection   -c -o sverbs.o sverbs.c
sverbs.c: In function ‘sverbs_’:
sverbs.c:220:41: warning: suggest parentheses around ‘+’ in operand of ‘&’ [-Wparentheses]
  220 |     if ((rooms_1.rflag[play_1.here - 1] & RWATER + RFILL) ==
      |                                         ^
sverbs.c:382:64: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  382 |     if (screen_1.scolrm == 0 || prsvec_1.prso != oindex_1.scol && (
sverbs.c:578:72: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  578 |     if (curxt_1.xtype == xpars_1.xno || curxt_1.xtype == xpars_1.xcond && !
sverbs.c:33:13: warning: variable ‘f’ set but not used [-Wunused-but-set-variable]
   33 |     logical f;
      |             ^
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection   -c -o villns.o villns.c
villns.c: In function ‘thiefp_’:
villns.c:484:42: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
  484 |     if (prsvec_1.prsa != vindex_1.throww && prsvec_1.prsa != vindex_1.givew ||
cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o zork actors.o ballop.o clockr.o demons.o dgame.o dinit.o dmain.o dso1.o dso2.o dso3.o dso4.o dso5.o dso6.o dso7.o dsub.o dverb1.o dverb2.o gdt.o lightp.o local.o nobjs.o np.o np1.o np2.o np3.o nrooms.o objcts.o rooms.o sobjs.o supp.o sverbs.o verbs.o villns.o -ltermcap
13:12:39 [sonik@razorback zork]$ ./zork
Welcome to Dungeon.			This version created 11-MAR-91.
You are in an open field west of a big white house with a boarded
front door.
There is a small mailbox here.
>get mail
Segmentation fault (core dumped)
13:12:47 [sonik@razorback zork]$

Comment 6 Justin W. Flory (Fedora) 2021-02-16 15:05:07 UTC
So, the upstream is no longer active. And while I am the Zork packager, I am not a C programmer. I forked the upstream repository to my own account. If someone wants to take a look at fixing this for newer versions of the compiler shipped by Fedora, I will accept any patches:

https://github.com/jwflory/zork

For now though, there is not much I can do about fixing this. Help is wanted by any pros in C.

Comment 7 Fedora Update System 2021-02-17 23:07:08 UTC
FEDORA-2021-a67cb20f9a has been submitted as an update to Fedora 33. https://bodhi.fedoraproject.org/updates/FEDORA-2021-a67cb20f9a

Comment 8 Fedora Update System 2021-02-17 23:08:15 UTC
FEDORA-2021-3db49a40d2 has been submitted as an update to Fedora 32. https://bodhi.fedoraproject.org/updates/FEDORA-2021-3db49a40d2

Comment 9 Fedora Update System 2021-02-17 23:08:52 UTC
FEDORA-EPEL-2021-cf854a6587 has been submitted as an update to Fedora EPEL 7. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2021-cf854a6587

Comment 10 Fedora Update System 2021-02-17 23:12:02 UTC
FEDORA-EPEL-2021-1a69da230b has been submitted as an update to Fedora EPEL 8. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2021-1a69da230b

Comment 11 Justin W. Flory (Fedora) 2021-02-17 23:36:09 UTC
A hotfix that disables a compiler optimization flag was pushed to Fedora 33, Fedora 32, EPEL 8, and EPEL 7. A working version of Zork will also ship in Fedora 34. Folks in the Fedora Packaging Community chat on Telegram debugged the issue to discover it was from compiler optimization.

To that end, Jan200101 (also in the Telegram group) wrote a patch that fixes this issue in the source code and preserves the compiler optimizations. It works and is more elegant than disabling optimization flags. Jan's patch was sent upstream, where we await a response:

https://github.com/devshane/zork/pull/14

If upstream accepts, I will cut a new release and re-add the optimization flag. If upstream does not come back to us in 1-2 months, I will carry the patch in dist-git.

Comment 12 sonik 2021-02-17 23:45:22 UTC
Thanks! Patch works. no more crash.

18:43:52 [sonik@razorback zork]$ diff -p np1.c.orig np1.c
*** np1.c.orig	2021-02-17 18:43:42.931763627 -0500
--- np1.c	2021-02-17 18:39:02.197859215 -0500
*************** logical vbflag;
*** 27,33 ****
      const integer r50wal = 36852;
  
      /* System generated locals */
!     integer ret_val, i__1, i__2;
  
      /* Local variables */
      integer i, j, adj;
--- 27,33 ----
      const integer r50wal = 36852;
  
      /* System generated locals */
!     volatile integer ret_val, i__1, i__2;
  
      /* Local variables */
      integer i, j, adj;

Comment 13 Fedora Update System 2021-02-18 01:26:33 UTC
FEDORA-EPEL-2021-cf854a6587 has been pushed to the Fedora EPEL 7 testing repository.

You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2021-cf854a6587

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 14 Fedora Update System 2021-02-18 01:36:58 UTC
FEDORA-EPEL-2021-1a69da230b has been pushed to the Fedora EPEL 8 testing repository.

You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2021-1a69da230b

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 15 Fedora Update System 2021-02-18 02:15:26 UTC
FEDORA-2021-a67cb20f9a has been pushed to the Fedora 33 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2021-a67cb20f9a`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2021-a67cb20f9a

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 16 Fedora Update System 2021-02-18 02:17:33 UTC
FEDORA-2021-3db49a40d2 has been pushed to the Fedora 32 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2021-3db49a40d2`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2021-3db49a40d2

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 17 Fedora Update System 2021-02-26 01:08:48 UTC
FEDORA-2021-a67cb20f9a has been pushed to the Fedora 33 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 18 Fedora Update System 2021-02-26 01:09:24 UTC
FEDORA-2021-3db49a40d2 has been pushed to the Fedora 32 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 19 Fedora Update System 2021-03-02 17:30:11 UTC
FEDORA-2021-de0ee56c39 has been submitted as an update to Fedora 34. https://bodhi.fedoraproject.org/updates/FEDORA-2021-de0ee56c39

Comment 20 Fedora Update System 2021-03-02 17:31:02 UTC
FEDORA-2021-9cc43d6844 has been submitted as an update to Fedora 33. https://bodhi.fedoraproject.org/updates/FEDORA-2021-9cc43d6844

Comment 21 Fedora Update System 2021-03-02 17:31:27 UTC
FEDORA-2021-e6c4cbd349 has been submitted as an update to Fedora 32. https://bodhi.fedoraproject.org/updates/FEDORA-2021-e6c4cbd349

Comment 22 Fedora Update System 2021-03-02 17:32:11 UTC
FEDORA-EPEL-2021-9bc37f11e5 has been submitted as an update to Fedora EPEL 7. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2021-9bc37f11e5

Comment 23 Fedora Update System 2021-03-02 17:32:51 UTC
FEDORA-EPEL-2021-fe3a31b543 has been submitted as an update to Fedora EPEL 8. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2021-fe3a31b543

Comment 24 Fedora Update System 2021-03-03 15:46:30 UTC
FEDORA-2021-de0ee56c39 has been pushed to the Fedora 34 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2021-de0ee56c39`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2021-de0ee56c39

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 25 Fedora Update System 2021-03-03 23:04:41 UTC
FEDORA-2021-e6c4cbd349 has been pushed to the Fedora 32 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2021-e6c4cbd349`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2021-e6c4cbd349

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 26 Fedora Update System 2021-03-03 23:24:35 UTC
FEDORA-EPEL-2021-fe3a31b543 has been pushed to the Fedora EPEL 8 testing repository.

You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2021-fe3a31b543

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 27 Fedora Update System 2021-03-03 23:52:26 UTC
FEDORA-2021-9cc43d6844 has been pushed to the Fedora 33 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2021-9cc43d6844`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2021-9cc43d6844

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 28 Fedora Update System 2021-03-04 00:03:35 UTC
FEDORA-EPEL-2021-9bc37f11e5 has been pushed to the Fedora EPEL 7 testing repository.

You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2021-9bc37f11e5

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 29 Fedora Update System 2021-03-11 23:36:49 UTC
FEDORA-2021-9cc43d6844 has been pushed to the Fedora 33 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 30 Fedora Update System 2021-03-12 00:06:38 UTC
FEDORA-2021-e6c4cbd349 has been pushed to the Fedora 32 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 31 Fedora Update System 2021-03-18 02:48:38 UTC
FEDORA-EPEL-2021-fe3a31b543 has been pushed to the Fedora EPEL 8 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 32 Fedora Update System 2021-03-18 04:27:19 UTC
FEDORA-EPEL-2021-9bc37f11e5 has been pushed to the Fedora EPEL 7 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 33 Fedora Update System 2021-03-19 17:43:38 UTC
FEDORA-2021-de0ee56c39 has been pushed to the Fedora 34 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 34 Fedora Update System 2021-03-19 19:59:44 UTC
FEDORA-2021-de0ee56c39 has been pushed to the Fedora 34 stable repository.
If problem still persists, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.