~ chicken-core (chicken-5) 683335b617016f4c87da82315f57fe8bbed41a1a
commit 683335b617016f4c87da82315f57fe8bbed41a1a
Author: Kristian Lein-Mathisen <kristianlein@gmail.com>
AuthorDate: Sat May 25 16:58:04 2013 +0200
Commit: Christian Kellermann <ckeen@pestilenz.org>
CommitDate: Wed May 29 21:42:31 2013 +0200
Adds argument-type check on getter-with-setter
===== before:
$ csi -p '(getter-with-setter (void) (void))'
Segmentation fault (core dumped)
===== after:
$ csi -p '(getter-with-setter (void) (void))'
Error: (getter-with-setter) bad argument type - not a procedure: #<unspecified>
Call history:
<syntax> (getter-with-setter (void) (void))
<syntax> (void)
<syntax> (void)
<eval> (getter-with-setter (void) (void))
<eval> (void)
<eval> (void) <--
Signed-off-by: Peter Bex <peter.bex@xs4all.nl>
Signed-off-by: Christian Kellermann <ckeen@pestilenz.org>
diff --git a/library.scm b/library.scm
index 68165d9e..7b967c63 100644
--- a/library.scm
+++ b/library.scm
@@ -2236,6 +2236,8 @@ EOF
(define setter ##sys#setter)
(define (getter-with-setter get set #!optional info)
+ (##sys#check-closure get 'getter-with-setter)
+ (##sys#check-closure set 'getter-with-setter)
(let ((getdec (cond (info
(##sys#check-string info 'getter-with-setter)
(##sys#make-lambda-info info))
Trap