From f2249b737055f84842778285bbeff5e61fa55225 Mon Sep 17 00:00:00 2001 From: Justus Winter Date: Tue, 6 Sep 2016 16:35:40 +0200 Subject: [PATCH] gpgscm: Fix detection of unbalanced parenthesis. * tests/gpgscm/main.c (load): Print error message. * tests/gpgscm/scheme.c (opexe_0): Correctly report nesting level when loading files. Signed-off-by: Justus Winter --- tests/gpgscm/main.c | 8 ++++++++ tests/gpgscm/scheme.c | 1 + 2 files changed, 9 insertions(+) diff --git a/tests/gpgscm/main.c b/tests/gpgscm/main.c index 34ebb9f83..9aef1f3fd 100644 --- a/tests/gpgscm/main.c +++ b/tests/gpgscm/main.c @@ -32,6 +32,7 @@ #include "private.h" #include "scheme.h" +#include "scheme-private.h" #include "ffi.h" #include "i18n.h" #include "../../common/argparse.h" @@ -176,6 +177,13 @@ load (scheme *sc, char *file_name, scheme_load_named_file (sc, h, qualified_name); fclose (h); + if (sc->retcode) + { + if (sc->nesting) + fprintf (stderr, "%s: Unbalanced parenthesis\n", qualified_name); + return gpg_error (GPG_ERR_GENERAL); + } + if (file_name != qualified_name) free (qualified_name); return 0; diff --git a/tests/gpgscm/scheme.c b/tests/gpgscm/scheme.c index 987f5af7d..1fc764356 100644 --- a/tests/gpgscm/scheme.c +++ b/tests/gpgscm/scheme.c @@ -2592,6 +2592,7 @@ static pointer opexe_0(scheme *sc, enum scheme_opcodes op) { if(sc->file_i == 0) { sc->args=sc->NIL; + sc->nesting = sc->nesting_stack[0]; s_goto(sc,OP_QUIT); } else