Subject: bug#68362: Segmentation fault when a procedure is called with no arguments

From: Yuval Langer <[email-masked]>
Date: Wed, 10 Jan 2024 06:12:39 +0200

I get the following output:

    Backtrace:
    In ice-9/boot-9.scm:
      1736:10  7 (with-exception-handler _ _ #:unwind? _ # _)
    In unknown file:
               6 (apply-smob/0 #<thunk 7f3276ea4ea0>)
    In ice-9/boot-9.scm:
        718:2  5 (call-with-prompt _ _ #<procedure default-prompt-handle…>)
    In ice-9/eval.scm:
        619:8  4 (_ #(#(#<directory (guile-user) 7f3276e9dc80>)))
    In rsv2scm:
        13:12  3 (main _)
    In rsv/arbitrary-null.scm:
       133:33  2 (rsv->scm #f #<input: file 0>)
       111:33  1 (row->scm #f 0 #<input: file 0>)
        81:20  0 (read-null-value _ _ _)

    rsv/arbitrary-null.scm:81:20: In procedure read-null-value:
    Wrong number of arguments to Segmentation fault

When running the commands:

    git clone https://codeberg.org/kakafarm/guile-rsv/ # Clone my repository.
    cd guile-rsv
    git checkout segmentation-fault # Should be commit number
790ee10036f3dcb425fbf5619ff0e452a73d459d
    printf "\xfe" | ./rsv2scm # This is the offending command.

I accidentally called the procedure read-null-value without any
arguments, while the procedure needs three arguments.  Instead of
showing a useful error, it results with in a segmentation fault.

My guile --version:

    guile (GNU Guile) 3.0.9

It came from a Guix installed on a Debian installation.  The Guix
repository commit obtained from the guix describe command is
3de361d9c9d320aefbd43710124d7b07af891de1.

Thank you,
Yuval Langer.