#13 Improper handling of bad let/letrec syntax

closed-fixed
nobody
None
5
2010-01-16
2008-05-15
Kevin Cozens
No

There are two more cases where bad syntax is handled incorrectly. The statement '(let x 5)' will generate a segmentation fault.

The statement '(letrec x 5)' returns 5. According to the R5RS, the syntax is wrong so it should be throwing out a "Bad syntax of binding spec in letrec" error message.

Discussion

  • Kevin Cozens
    Kevin Cozens
    2008-05-16

    Logged In: YES
    user_id=1113465
    Originator: YES

    Fix for seg-fault in 'let' committed as version 1.19 of the scheme.c file. A fix is still needed for 'letrec'.

     
  • Kevin Cozens
    Kevin Cozens
    2008-05-22

    Logged In: YES
    user_id=1113465
    Originator: YES

    Checked version 1.21 in to CVS May 22, 2008:
    Exposed is_list and list_length. Updated is_list and list_length to handle
    circular lists. Prevent "(let x 5)" from causing a seg. fault in Linux.
    Removed some excess whitespace.

    This commit fixes the last of the known ways to trigger a seg fault in Linux as the result of bad 'let' syntax. A named 'let' of the form "(let loop () 5)" now returns 5 just like 'letrec' instead of a syntax error.

     
  • Kevin Cozens
    Kevin Cozens
    2010-01-16

    • status: open --> open-fixed
     
  • Kevin Cozens
    Kevin Cozens
    2010-01-16

    • status: open-fixed --> closed-fixed