[Announce] FrogComposband 7.1.salmiak released

Collapse
X
 
  • Time
  • Show
Clear All
new posts

  • LordL
    replied
    Is it normal that walking through forest tiles takes 60 energy with fleet of foot demigod talent?

    Leave a comment:


  • HugoVirtuoso
    replied
    I noticed the Brass Lantern of Extra Light {Lu} doesn't have 0 light radius when it has 0 turns of light. Shouldn't it have 0 light radius when its fuel runs out...? I already knew {Lu} had permanent light. But, if the light runs out, it's out...or maybe it is still supposed to have light to because of "Permanent Light?" I'm trying to confirm how the Brass Lantern of Extra Light game mechanics are intended to work in FrogComposband.

    In Sil-Q, they, as Brass Lanterns of Brightness, actually causes the light radius to be 0 at 0 turns of light.
    Last edited by HugoVirtuoso; January 17, 2022, 18:25. Reason: Edited post multiple times for clarity.

    Leave a comment:


  • Sideways
    replied
    Originally posted by mariari
    I got the game to compile fine on Linux, however it seems if I try to press !, or { (inscribe then select any item) the game crashes with the message given in the below code snippet .

    Note this happens both with the master branch on github and the 7.1 salmiak release. Does anyone know if there is some library mismatch or any way to solve or better report this issue?
    Thanks for reporting; and thanks to Nick for taking a look. (The choice of buf[len] rather than buf[len-1] was originally deliberate, but most other parts of the code forgot about it, with two or three exceptions.)

    Leave a comment:


  • smbhax
    replied
    Originally posted by smbhax
    Not sure why Vanilla and Frog haven't updated their config settings to detect ncurses/w 6 as well as 5, though.
    Ah, Vanilla is detecting ncurses6 now. : )

    Leave a comment:


  • mariari
    replied
    Originally posted by Nick
    Looks to me like
    Code:
        /* Paranoia -- Clip the default entry */
        buf[len] = '\0';
    should be
    Code:
        /* Paranoia -- Clip the default entry */
        buf[len - 1] = '\0';
    (util.c line 2720). Or potentially you could use different call parameters in line 979 of obj.c, but that still leaves it open for error in other calls.
    Yeah That seems to fix the two errors I've encountered.

    I've since got other people to compile the game, and seems if they ran the make file without any options, the commands work, but pref crashes when you hit enter.

    However when they do compile with
    Code:
    ./configure SANITIZE_FLAGS=-fsanitize=address --with-no-install
    This error happens for them, I'm guessing without fsantize=adresss the game just sees the errors writes to the memory location that is out of bounds and continues on. Should I make a pull request with this on the repo, it seems to lack any sort of issue tracking.

    Thank you once again
    Last edited by mariari; January 17, 2022, 00:36.

    Leave a comment:


  • Nick
    replied
    Originally posted by mariari
    I got the game to compile fine on Linux, however it seems if I try to press !, or { (inscribe then select any item) the game crashes with the message given in the below code snippet .
    Looks to me like
    Code:
        /* Paranoia -- Clip the default entry */
        buf[len] = '\0';
    should be
    Code:
        /* Paranoia -- Clip the default entry */
        buf[len - 1] = '\0';
    (util.c line 2720). Or potentially you could use different call parameters in line 979 of obj.c, but that still leaves it open for error in other calls.

    Leave a comment:


  • mariari
    replied
    I got the game to compile fine on Linux, however it seems if I try to press !, or { (inscribe then select any item) the game crashes with the message given in the below code snippet .

    Note this happens both with the master branch on github and the 7.1 salmiak release. Does anyone know if there is some library mismatch or any way to solve or better report this issue?

    Code:
    2 katya@Babylon-4:~/Desktop/Games/Rogue/Angband/frogcomposband/frogcomposband-7.1.salmiak % ./frogcomposband 
    =================================================================
    ==3746037==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7ffe9fbb8ec0 at pc 0x555c18d6a3a2 bp 0x7ffe9fbb8c70 sp 0x7ffe9fbb8c60
    WRITE of size 1 at 0x7ffe9fbb8ec0 thread T0
        #0 0x555c18d6a3a1 in askfor_aux /home/katya/Desktop/Games/Rogue/Angband/frogcomposband/frogcomposband-7.1.salmiak/src/util.c:2720
        #1 0x555c18d6abbc in askfor /home/katya/Desktop/Games/Rogue/Angband/frogcomposband/frogcomposband-7.1.salmiak/src/util.c:2904
        #2 0x555c18a85133 in _inscriber /home/katya/Desktop/Games/Rogue/Angband/frogcomposband/frogcomposband-7.1.salmiak/src/obj.c:979
        #3 0x555c18a9cb97 in obj_prompt /home/katya/Desktop/Games/Rogue/Angband/frogcomposband/frogcomposband-7.1.salmiak/src/obj_prompt.c:147
        #4 0x555c18a85555 in obj_inscribe_ui /home/katya/Desktop/Games/Rogue/Angband/frogcomposband/frogcomposband-7.1.salmiak/src/obj.c:999
        #5 0x555c1884cb35 in _dispatch_command /home/katya/Desktop/Games/Rogue/Angband/frogcomposband/frogcomposband-7.1.salmiak/src/dungeon.c:4031
        #6 0x555c1884e516 in process_command /home/katya/Desktop/Games/Rogue/Angband/frogcomposband/frogcomposband-7.1.salmiak/src/dungeon.c:4499
        #7 0x555c18853232 in process_player /home/katya/Desktop/Games/Rogue/Angband/frogcomposband/frogcomposband-7.1.salmiak/src/dungeon.c:5018
        #8 0x555c1885793c in dungeon /home/katya/Desktop/Games/Rogue/Angband/frogcomposband/frogcomposband-7.1.salmiak/src/dungeon.c:5432
        #9 0x555c18860566 in play_game /home/katya/Desktop/Games/Rogue/Angband/frogcomposband/frogcomposband-7.1.salmiak/src/dungeon.c:6464
        #10 0x555c18e8adbe in main /home/katya/Desktop/Games/Rogue/Angband/frogcomposband/frogcomposband-7.1.salmiak/src/main.c:779
        #11 0x7f9e56cfeb24 in __libc_start_main (/usr/lib/libc.so.6+0x27b24)
        #12 0x555c1863fa5d in _start (/home/katya/Desktop/Games/Rogue/Angband/frogcomposband/frogcomposband-7.1.salmiak/frogcomposband+0x1d6a5d)
    
    Address 0x7ffe9fbb8ec0 is located in stack of thread T0 at offset 128 in frame
        #0 0x555c18a84d6b in _inscriber /home/katya/Desktop/Games/Rogue/Angband/frogcomposband/frogcomposband-7.1.salmiak/src/obj.c:959
    
      This frame has 2 object(s):
        [48, 128) 'insc' (line 966) <== Memory access at offset 128 overflows this variable
        [160, 415) 'name' (line 965)
    HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork
          (longjmp and C++ exceptions *are* supported)
    SUMMARY: AddressSanitizer: stack-buffer-overflow /home/katya/Desktop/Games/Rogue/Angband/frogcomposband/frogcomposband-7.1.salmiak/src/util.c:2720 in askfor_aux
    Shadow bytes around the buggy address:
      0x100053f6f180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      0x100053f6f190: 00 00 00 00 00 00 00 00 f1 f1 f1 f1 f1 f1 04 f2
      0x100053f6f1a0: 04 f2 00 00 00 00 00 00 00 00 00 00 00 00 04 f3
      0x100053f6f1b0: f3 f3 f3 f3 00 00 00 00 00 00 00 00 00 00 00 00
      0x100053f6f1c0: 00 00 00 00 00 00 00 00 f1 f1 f1 f1 f1 f1 00 00
    =>0x100053f6f1d0: 00 00 00 00 00 00 00 00[f2]f2 f2 f2 00 00 00 00
      0x100053f6f1e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      0x100053f6f1f0: 00 00 00 00 00 00 00 00 00 00 00 07 f3 f3 f3 f3
      0x100053f6f200: f3 f3 f3 f3 00 00 00 00 00 00 00 00 00 00 00 00
      0x100053f6f210: 00 00 00 00 00 00 00 00 f1 f1 f1 f1 04 f2 00 00
      0x100053f6f220: 00 00 00 f2 f2 f2 f2 f2 00 00 00 00 00 00 00 00
    Shadow byte legend (one shadow byte represents 8 application bytes):
      Addressable:           00
      Partially addressable: 01 02 03 04 05 06 07 
      Heap left redzone:       fa
      Freed heap region:       fd
      Stack left redzone:      f1
      Stack mid redzone:       f2
      Stack right redzone:     f3
      Stack after return:      f5
      Stack use after scope:   f8
      Global redzone:          f9
      Global init order:       f6
      Poisoned by user:        f7
      Container overflow:      fc
      Array cookie:            ac
      Intra object redzone:    bb
      ASan internal:           fe
      Left alloca redzone:     ca
      Right alloca redzone:    cb
      Shadow gap:              cc
    
    2 1 katya@Babylon-4:~/Desktop/Games/Rogue/Angband/frogcomposband/frogcomposband-7.1.salmiak % ./frogcomposband
    =================================================================
    ==3746105==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7ffc69e3ad40 at pc 0x55f9d91b63a2 bp 0x7ffc69e3aae0 sp 0x7ffc69e3aad0
    WRITE of size 1 at 0x7ffc69e3ad40 thread T0
        #0 0x55f9d91b63a1 in askfor_aux /home/katya/Desktop/Games/Rogue/Angband/frogcomposband/frogcomposband-7.1.salmiak/src/util.c:2720
        #1 0x55f9d91b6bbc in askfor /home/katya/Desktop/Games/Rogue/Angband/frogcomposband/frogcomposband-7.1.salmiak/src/util.c:2904
        #2 0x55f9d91b6c02 in get_string /home/katya/Desktop/Games/Rogue/Angband/frogcomposband/frogcomposband-7.1.salmiak/src/util.c:2932
        #3 0x55f9d8bb00bc in do_cmd_pref /home/katya/Desktop/Games/Rogue/Angband/frogcomposband/frogcomposband-7.1.salmiak/src/cmd4.c:1770
        #4 0x55f9d8c997ea in _dispatch_command /home/katya/Desktop/Games/Rogue/Angband/frogcomposband/frogcomposband-7.1.salmiak/src/dungeon.c:4275
        #5 0x55f9d8c9a516 in process_command /home/katya/Desktop/Games/Rogue/Angband/frogcomposband/frogcomposband-7.1.salmiak/src/dungeon.c:4499
        #6 0x55f9d8c9f232 in process_player /home/katya/Desktop/Games/Rogue/Angband/frogcomposband/frogcomposband-7.1.salmiak/src/dungeon.c:5018
        #7 0x55f9d8ca393c in dungeon /home/katya/Desktop/Games/Rogue/Angband/frogcomposband/frogcomposband-7.1.salmiak/src/dungeon.c:5432
        #8 0x55f9d8cac566 in play_game /home/katya/Desktop/Games/Rogue/Angband/frogcomposband/frogcomposband-7.1.salmiak/src/dungeon.c:6464
        #9 0x55f9d92d6dbe in main /home/katya/Desktop/Games/Rogue/Angband/frogcomposband/frogcomposband-7.1.salmiak/src/main.c:779
        #10 0x7f0617c3ab24 in __libc_start_main (/usr/lib/libc.so.6+0x27b24)
        #11 0x55f9d8a8ba5d in _start (/home/katya/Desktop/Games/Rogue/Angband/frogcomposband/frogcomposband-7.1.salmiak/frogcomposband+0x1d6a5d)
    
    Address 0x7ffc69e3ad40 is located in stack of thread T0 at offset 128 in frame
        #0 0x55f9d8baffdc in do_cmd_pref /home/katya/Desktop/Games/Rogue/Angband/frogcomposband/frogcomposband-7.1.salmiak/src/cmd4.c:1763
    
      This frame has 1 object(s):
        [48, 128) 'buf' (line 1764) <== Memory access at offset 128 overflows this variable
    HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork
          (longjmp and C++ exceptions *are* supported)
    SUMMARY: AddressSanitizer: stack-buffer-overflow /home/katya/Desktop/Games/Rogue/Angband/frogcomposband/frogcomposband-7.1.salmiak/src/util.c:2720 in askfor_aux
    Shadow bytes around the buggy address:
      0x10000d3bf550: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      0x10000d3bf560: 00 00 00 00 00 00 f1 f1 f1 f1 f1 f1 04 f2 04 f2
      0x10000d3bf570: 00 00 00 00 00 00 00 00 00 00 00 00 04 f3 f3 f3
      0x10000d3bf580: f3 f3 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      0x10000d3bf590: 00 00 00 00 00 00 00 00 f1 f1 f1 f1 f1 f1 00 00
    =>0x10000d3bf5a0: 00 00 00 00 00 00 00 00[f3]f3 f3 f3 00 00 00 00
      0x10000d3bf5b0: 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1 00 00
      0x10000d3bf5c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      0x10000d3bf5d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      0x10000d3bf5e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      0x10000d3bf5f0: 00 f2 f2 f2 f2 f2 f2 f2 f2 f2 00 00 00 00 00 00
    Shadow byte legend (one shadow byte represents 8 application bytes):
      Addressable:           00
      Partially addressable: 01 02 03 04 05 06 07 
      Heap left redzone:       fa
      Freed heap region:       fd
      Stack left redzone:      f1
      Stack mid redzone:       f2
      Stack right redzone:     f3
      Stack after return:      f5
      Stack use after scope:   f8
      Global redzone:          f9
      Global init order:       f6
      Poisoned by user:        f7
      Container overflow:      fc
      Array cookie:            ac
      Intra object redzone:    bb
      ASan internal:           fe
      Left alloca redzone:     ca
      Right alloca redzone:    cb
      Shadow gap:              cc

    Leave a comment:


  • Sideways
    replied
    Originally posted by GrimaTheBold
    A quick Ninja question - is there any downside to adding light sources as long as they're offset by darkness sources?
    No, actually negative total light simply gets rounded up to no light. As long as any light gets offset by darkness, you're good.

    Leave a comment:


  • GrimaTheBold
    replied
    A quick Ninja question - is there any downside to adding light sources as long as they're offset by darkness sources?

    I have a Feanoran Lamp of Darkness which decreases light by 3. Is there any penalty to using Sting, or an Amulet with Lu, as long as they are still offset by the -3 on the Lamp and I'm not getting the "Icky light" message? Is there a benefit to having a larger negative light (darkness)?

    Leave a comment:


  • smbhax
    replied
    Originally posted by backwardsEric
    This also worked for Angband:

    Code:
    ./configure --with-no-install --with-ncurses-prefix=/usr LIBS=-lncurses
    Aha! That one solves the ncurses5/6 detection problem on Cygwin. Thanks! : D

    Leave a comment:


  • backwardsEric
    replied
    The "Fatal Error." means it didn't find the lib directory. Check the output of configure to see what it said the "lib path" would be. I suspect that configure wants the LIBS= option at the end of the command line (after any of the --with, --without, --enable, --prefix, ...) and ignored the --with-no-install.

    Leave a comment:


  • lea2501
    replied
    Originally posted by backwardsEric
    When I compiled it on OpenBSD 6.9, it did not recognize the installed version of ncurses by default but did recognize the X11 libraries which were also installed. Adding "--with-ncurses-prefix=/usr LIBS=-lncurses" to the options to configure let it build the curses front end. That worked, at least as far as getting to the splash screen and the prompt for what sort of game to start.
    It managed to compile like this:
    Code:
    $ ./configure --prefix $HOME/.frogcomposband --with-ncurses-prefix=/usr LIBS=-lncurses --without-x --with-no-install CFLAGS="-DSGI -DULTRIX"
    But then i get this (new) error:
    Code:
    x ~/src/frogcomposband [master]
    lea@openbsd > ./src/frogcomposband -uUser
    ./src/frogcomposband: Fatal Error.

    Leave a comment:


  • backwardsEric
    replied
    Originally posted by lea2501
    Code:
    v ~/src/frogcomposband [master]
    lea@openbsd > ./src/frogcomposband -uUser -mgcu -- -n1
    ./src/frogcomposband: Unable to prepare any 'display module'!
    x ~/src/frogcomposband [master]
    lea@openbsd > ./src/frogcomposband -uUser
    ./src/frogcomposband: Unable to prepare any 'display module'!
    x ~/src/frogcomposband [master]
    lea@openbsd > ./src/frogcomposband
    ./src/frogcomposband: Unable to prepare any 'display module'!
    When I compiled it on OpenBSD 6.9, it did not recognize the installed version of ncurses by default but did recognize the X11 libraries which were also installed. Adding "--with-ncurses-prefix=/usr LIBS=-lncurses" to the options to configure let it build the curses front end. That worked, at least as far as getting to the splash screen and the prompt for what sort of game to start.

    Leave a comment:


  • lea2501
    replied
    Originally posted by backwardsEric
    Hmm, setting SGI should have excluded that; it worked on OpenBSD 6.9. Commenting out line 43 of h-system.h should do the trick; replace it with

    Code:
    /* # include <sys/timeb.h> */
    Thanks! i managed to compiled it with this:
    Code:
    $ ./configure --prefix $HOME/.frogcomposband --without-x --with-no-install CFLAGS="-DSGI -DULTRIX"
    $ gmake
    because i saw this in the "src/h-system.h" file:
    Code:
    # if !defined(SGI) && !defined(ULTRIX)
        # include <sys/timeb.h>
    # endif
    and it compiled! but it doesn't work
    Code:
    v ~/src/frogcomposband [master]
    lea@openbsd > ./src/frogcomposband -uUser -mgcu -- -n1
    ./src/frogcomposband: Unable to prepare any 'display module'!
    x ~/src/frogcomposband [master]
    lea@openbsd > ./src/frogcomposband -uUser
    ./src/frogcomposband: Unable to prepare any 'display module'!
    x ~/src/frogcomposband [master]
    lea@openbsd > ./src/frogcomposband
    ./src/frogcomposband: Unable to prepare any 'display module'!

    Leave a comment:


  • backwardsEric
    replied
    Originally posted by lea2501
    Sadly i have the same exact error

    Code:
    Generating dependencies...
    gmake[4]: Entering directory '/home/lea/src/frogcomposband/src'
    In file included from ninja.c:1:
    In file included from ./angband.h:19:
    In file included from ./h-basic.h:66:
    ./h-system.h:43:12: fatal error: 'sys/timeb.h' file not found
    #  include <sys/timeb.h>
               ^~~~~~~~~~~~~
    Hmm, setting SGI should have excluded that; it worked on OpenBSD 6.9. Commenting out line 43 of h-system.h should do the trick; replace it with

    Code:
    /* # include <sys/timeb.h> */

    Leave a comment:

Working...
😀
😂
🥰
😘
🤢
😎
😞
😡
👍
👎