From 917fe3fa612dc457f2e561c6cae0d7c2cbf895dc Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Tue, 11 Apr 2017 08:32:05 +0000 Subject: bugfix: catch empty blocks in multidefine --- src/libexecline/exlsn_main.c | 1 + src/libexecline/exlsn_multidefine.c | 1 + 2 files changed, 2 insertions(+) (limited to 'src') diff --git a/src/libexecline/exlsn_main.c b/src/libexecline/exlsn_main.c index 0fe7bd1..c7747de 100644 --- a/src/libexecline/exlsn_main.c +++ b/src/libexecline/exlsn_main.c @@ -12,6 +12,7 @@ void exlsn_main (int argc, char const **argv, char const *const *envp, exlsnfunc int r = (*func)(argc, argv, envp, &info) ; if (r < 0) switch (r) { + case -4 : strerr_dief1x(100, "empty block") ; case -3 : strerr_dieusage(100, usage) ; case -2 : strerr_dief1x(111, "bad substitution key") ; case -1 : strerr_diefu1sys(111, "complete exlsn function") ; diff --git a/src/libexecline/exlsn_multidefine.c b/src/libexecline/exlsn_multidefine.c index bf50087..c28d926 100644 --- a/src/libexecline/exlsn_multidefine.c +++ b/src/libexecline/exlsn_multidefine.c @@ -41,6 +41,7 @@ int exlsn_multidefine (int argc, char const **argv, char const *const *envp, exl x = argv[0] ; argv++ ; argc-- ; argc1 = el_semicolon(argv) ; + if (!argc1) return -4 ; if (argc1 >= argc) return -3 ; if (!stralloc_cats(&info->values, x)) return -1 ; { -- cgit v1.2.3