diff options
author | Justus Winter <[email protected]> | 2017-04-20 13:09:13 +0000 |
---|---|---|
committer | Justus Winter <[email protected]> | 2017-04-24 13:47:27 +0000 |
commit | 4aab0e6ac7f2887a6f38f0cb95365dd7c30b4b18 (patch) | |
tree | aec184ea543a403f66a6b9ca4430e4a104454bfa | |
parent | gpgscm: Emit JUnit-style XML reports. (diff) | |
download | gnupg-4aab0e6ac7f2887a6f38f0cb95365dd7c30b4b18.tar.gz gnupg-4aab0e6ac7f2887a6f38f0cb95365dd7c30b4b18.zip |
gpgscm: Improve syntax checking.
* tests/gpgscm/scheme.c (opexe_0): Make sure closure arguments are
symbols.
Signed-off-by: Justus Winter <[email protected]>
-rw-r--r-- | tests/gpgscm/scheme.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/tests/gpgscm/scheme.c b/tests/gpgscm/scheme.c index 11f6fcb0c..38f287033 100644 --- a/tests/gpgscm/scheme.c +++ b/tests/gpgscm/scheme.c @@ -3559,10 +3559,13 @@ static pointer opexe_0(scheme *sc, enum scheme_opcodes op) { is_pair(x); x = cdr(x), y = cdr(y)) { if (y == sc->NIL) { Error_1(sc, "not enough arguments, missing:", x); - } else { + } else if (is_symbol(car(x))) { new_slot_in_env(sc, car(x), car(y)); - } + } else { + Error_1(sc, "syntax error in closure: not a symbol", car(x)); + } } + if (x == sc->NIL) { if (y != sc->NIL) { Error_0(sc, "too many arguments"); |