Bug#583291: menhir: segmentation fault
Package: menhir
Version: 20090505.dfsg-2+b1
Severity: normal
Running this command segfaults menhir:
$ echo 'EOF' | menhir --interpret foo.mly
Segmentation fault
It doesn't always segfault, running it a couple more times, sometimes I get this OCaml error:
$ echo EOF | menhir --interpret foo.mly
Fatal error: exception Stack_overflow
valgrind says:
==28472== Stack overflow in thread 1: can't grow stack to 0x7fe801ff8
==28472== Stack overflow in thread 1: can't grow stack to 0x7fe801ff0
==28472==
==28472== Process terminating with default action of signal 11 (SIGSEGV)
==28472== Access not within mapped region at address 0x7FE801FF0
==28472== at 0x4B8CC8: ??? (in /usr/bin/menhir)
So it looks like the stack overflow is not always caught properly by OCaml, and
instead causes menhir to segfault.
Of course 'menhir' should stack overflow in the first place (if there is
something wrong with the grammar it should show an error message).
Here is foo.mly:
$ cat >foo.mly <<EOF
%token SEMICOLON
%token EOF
%start <unit> main
%%
main:
| SEMICOLON EOF { }
| error SEMICOLON { }
EOF
-- System Information:
Debian Release: squeeze/sid
APT prefers unstable
APT policy: (990, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.34-rc5-00118-gf259493 (SMP w/4 CPU cores; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages menhir depends on:
ii libc6 2.10.2-9 Embedded GNU C Library: Shared lib
menhir recommends no packages.
menhir suggests no packages.
-- no debconf information
Reply to: