[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: