From 6445573d240157cfd3ba8044f0896179b16deb1b Mon Sep 17 00:00:00 2001 From: Martijn Dekker Date: Thu, 21 Jan 2021 08:39:10 +0000 Subject: [PATCH] typeset: only alloc stack space if needed (re: ff70c27f) src/cmd/ksh93/bltins/typeset.c: - Don't call stakalloc(3) unless/until we actually need it to construct a new list of arguments. --- src/cmd/ksh93/bltins/typeset.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/cmd/ksh93/bltins/typeset.c b/src/cmd/ksh93/bltins/typeset.c index 45533ff7d..e7772caf9 100644 --- a/src/cmd/ksh93/bltins/typeset.c +++ b/src/cmd/ksh93/bltins/typeset.c @@ -196,9 +196,7 @@ int b_typeset(int argc,register char *argv[],Shbltin_t *context) Namdecl_t *ntp = (Namdecl_t*)context->ptr; Dt_t *troot; int isfloat=0, shortint=0, sflag=0; - char **new_argv; - new_argv = (char **)stakalloc((argc + 2) * sizeof(char*)); memset((void*)&tdata,0,sizeof(tdata)); tdata.sh = context->shp; troot = tdata.sh->var_tree; @@ -210,6 +208,7 @@ int b_typeset(int argc,register char *argv[],Shbltin_t *context) } else if(argv[0][0] != 't') /* not ypeset */ { + char **new_argv = (char **)stakalloc((argc + 2) * sizeof(char*)); new_argv[0] = "typeset"; if(argv[0][0] == 'a') /* utoload == typeset -fu */ new_argv[1] = "-fu";