From 1733efe236092f2e1a738bfd98029b6c9e4035cf Mon Sep 17 00:00:00 2001 From: Tim Gesthuizen Date: Tue, 3 Dec 2019 18:50:37 +0100 Subject: srfi-11: Do not expose variables to later clauses The current implementation of srfi-11s let-values allows later clauses to access and modify variables bound in earlier clauses when the clause is not a proper list. * module/srfi/srfi-11.scm (let-values): Fix switched variable names. * test-suite/tests/srfi-11.test (let-values): Add test checking that the variable cannot be changed in later clauses. --- module/srfi/srfi-11.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'module/srfi') diff --git a/module/srfi/srfi-11.scm b/module/srfi/srfi-11.scm index 22bda21a2..7afac9c5f 100644 --- a/module/srfi/srfi-11.scm +++ b/module/srfi/srfi-11.scm @@ -91,7 +91,7 @@ (syntax (call-with-values (lambda () exp) (lambda (new-tmp ...) inner)))))) ((vars exp) - (with-syntax ((((new-tmp . new-var) ...) + (with-syntax ((((new-var . new-tmp) ...) (let lp ((vars (syntax vars))) (syntax-case vars () ((id . rest) -- cgit v1.2.1