On Sun, Apr 3, 2011 at 3:17 PM, Werner LEMBERG <w...@gnu.org> wrote: >>> I do. Any user program *must not* produce a segfault IMHO if fed >>> with user data, regardless of its origin. >> >> It it possible to make guile crash? > > Maybe. However, with `crash' I mean that lilypond aborts with a > segfault or something similar. It's quite easy to write an endless > loop or to exhaust the memory, but in the former case lilypond's guile > interpreter just hangs, and you should be able to abort with ^C, and > in the latter case lilypond should abort with a proper (Guile) error > message, and maybe we can add some measures to prevent unplausible > memory allocations.
LilyPond exposes large parts of the internal implementation through the Scheme interface, and that has as a side-effect that there are many ways for users to break lilypond. This is unlikely to lead to arbitrary behavior, as Guile values themselves themselves are type tagged. The worst which can happen is that a value is incorrectly type-cast which leads to either a null dereference or some other type assertion. I don't think it is productive to try to systematically plug all these errors; at best, you'll replace a bunch of segmentation faults with just as unhelpful assertion failures. -- Han-Wen Nienhuys - han...@xs4all.nl - http://www.xs4all.nl/~hanwen _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel