Subject: gcl crashes with certain (incorrect) program
From: Matej Kosik <[email-masked]>
To: Debian Bug Tracking System <[email-masked]>
Date: Sat, 17 Mar 2007 18:40:13 +0100

Package: gcl
Version: 2.6.7-32
Severity: important

Hi,

When I define a following function:

	(defun my-member (some-list sexp)
	  (cond ((null some-list) nil)
	        ((equal (first some-list) sexp) t)
	        ((equal (rest some-list) sexp) t)
		(t (or (my-member (first some-list) sexp)
		       (my-member (first some-list) sexp)
	) )     )  )

the `gcl' interpreter accepts it (it is syntactically correct).
However, when I later invoke it as follows:

	(my-member '(1) 'a)

I see

	Error: Caught fatal error [memory may be damaged]
	Fast links are on: do (si::use-fast-links nil) for debugging
	Error signalled by EQUAL.
	Broken at EQUAL.  Type :H for Help.

when I try the same query again I see

	Segmentation fault

My program contains an error but running it should not cause segfaults,
I guess. Different interpreter (clisp) reports correct run-time error.

Regards.

-- System Information:
Debian Release: 4.0
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18-4-686
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)

Versions of packages gcl depends on:
ii  debconf [debconf-2.0]         1.5.11     Debian configuration management sy
ii  gcc                           4:4.1.1-15 The GNU C compiler

gcl recommends no packages.

-- debconf-show failed