summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2017-04-11 08:32:05 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2017-04-11 08:32:05 +0000
commit917fe3fa612dc457f2e561c6cae0d7c2cbf895dc (patch)
tree9b39ad1044bb15ea9cc70e507c92fb7579c2bba3 /src
parent68619a9de71e9ee26bca3b6a86b22c11e720b91d (diff)
downloadexecline-917fe3fa612dc457f2e561c6cae0d7c2cbf895dc.tar.xz
bugfix: catch empty blocks in multidefine
Diffstat (limited to 'src')
-rw-r--r--src/libexecline/exlsn_main.c1
-rw-r--r--src/libexecline/exlsn_multidefine.c1
2 files changed, 2 insertions, 0 deletions
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 ;
{