diff options
| author | Daniel Shahaf <d.s@daniel.shahaf.name> | 2015-12-13 14:53:17 +0000 |
|---|---|---|
| committer | Mikael Magnusson <mikachu@gmail.com> | 2016-05-08 21:57:06 +0200 |
| commit | 3062f6aef115bd60fa3a0cae691bd9338f2d3ce7 (patch) | |
| tree | 9aa65ffca965ddb0c3a432183ee7fc3233b33818 | |
| parent | Uncontroversial (diff) | |
| download | zsh-3062f6aef115bd60fa3a0cae691bd9338f2d3ce7.tar zsh-3062f6aef115bd60fa3a0cae691bd9338f2d3ce7.tar.gz zsh-3062f6aef115bd60fa3a0cae691bd9338f2d3ce7.tar.bz2 zsh-3062f6aef115bd60fa3a0cae691bd9338f2d3ce7.tar.lz zsh-3062f6aef115bd60fa3a0cae691bd9338f2d3ce7.tar.xz zsh-3062f6aef115bd60fa3a0cae691bd9338f2d3ce7.tar.zst zsh-3062f6aef115bd60fa3a0cae691bd9338f2d3ce7.zip | |
CPU SPINNER AND OUT-OF-MEMORY BUGS - DO NOT USE
% make -s check
./B08shift.ztst: starting.
*** /tmp/zsh.ztst.out.20779 Sun Dec 13 16:15:26 2015
--- /tmp/zsh.ztst.tout.20779 Sun Dec 13 16:15:26 2015
***************
*** 1,4 ****
! tether mether pip azer sezar akker conter dick
! mether pip azer sezar akker conter dick
! mether pip azer sezar
! mether pip azer
--- 1,4 ----
! yan tan tether mether pip azer sezar akker conter dick
! yan tan tether mether pip azer sezar akker conter dick
! yan tan tether mether pip azer sezar akker conter dick
! yan tan tether mether pip azer sezar akker conter dick
Test ./B08shift.ztst failed: output differs from expected as shown above for:
array=(yan tan tether mether pip azer sezar akker conter dick)
shift 2 array
print $array
shift array
print $array
shift -p 3 array
print $array
shift -p array
print $array
Error output:
(eval):shift:2: shift count must be <= $#
(eval):shift:4: shift count must be <= $#
(eval):shift:6: shift count must be <= $#
(eval):shift:8: shift count must be <= $#
Was testing: shifting array
./B08shift.ztst: test failed.
./D04parameter.ztst: starting.
*** /tmp/zsh.ztst.out.22016 Sun Dec 13 16:15:49 2015
--- /tmp/zsh.ztst.tout.22016 Sun Dec 13 16:15:49 2015
***************
*** 1,10 ****
! a 1 b 2 c 3
! a 1 b 2 c 3
! a 1 b 2
! a 1 b 2 c 1 d 2
! a a b
! 1
! a a
! 1
! b
! 2 2
--- 1,6 ----
!
! a b c
!
! a b c d
!
!
Test ./D04parameter.ztst failed: output differs from expected as shown above for:
foo=(a b c)
bar=(1 2 3)
print ${foo:^bar}
print ${foo:^^bar}
foo=(a b c d)
bar=(1 2)
print ${foo:^bar}
print ${foo:^^bar}
foo=('a a' b)
bar=(1 '2 2')
print -l "${foo:^bar}"
print -l "${(@)foo:^bar}"
Was testing: Zipping arrays, correct output
./D04parameter.ztst: test failed.
./X02zlevi.ztst: starting.
comptesteval:6: fatal error: out of heap memory
./X03zlebindkey.ztst: starting.
comptesteval:6: fatal error: out of heap memory
./Y01completion.ztst: starting.
comptesteval:6: fatal error: out of heap memory
./Y02compmatch.ztst: starting.
comptesteval:6: fatal error: out of heap memory
./Y03arguments.ztst: starting.
comptesteval:6: fatal error: out of heap memory
**************************************
41 successful test scripts, 7 failures, 0 skipped
**************************************
| -rw-r--r-- | Src/params.c | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/Src/params.c b/Src/params.c index fef95fe7f..abb178042 100644 --- a/Src/params.c +++ b/Src/params.c @@ -263,7 +263,7 @@ typedef struct iparam { static initparam special_params[] ={ #define GSU(X) BR((GsuScalar)(void *)(&(X))) #define NULL_GSU BR((GsuScalar)(void *)NULL) -#define IPDEF1(A,B,C) {{NULL,A,PM_INTEGER|PM_SPECIAL|C},BR(NULL),GSU(B),10,0,NULL,NULL,NULL,0} +#define IPDEF1(A,B,C) {{NULL,A,PM_INTEGER|PM_SPECIAL|C},BR(NULL),GSU(B),10,0,0,NULL,NULL,NULL,0} IPDEF1("#", pound_gsu, PM_READONLY), IPDEF1("ERRNO", errno_gsu, PM_UNSET), IPDEF1("GID", gid_gsu, PM_DONTIMPORT | PM_RESTRICTED), @@ -276,7 +276,7 @@ IPDEF1("UID", uid_gsu, PM_DONTIMPORT | PM_RESTRICTED), IPDEF1("EUID", euid_gsu, PM_DONTIMPORT | PM_RESTRICTED), IPDEF1("TTYIDLE", ttyidle_gsu, PM_READONLY), -#define IPDEF2(A,B,C) {{NULL,A,PM_SCALAR|PM_SPECIAL|C},BR(NULL),GSU(B),0,0,NULL,NULL,NULL,0} +#define IPDEF2(A,B,C) {{NULL,A,PM_SCALAR|PM_SPECIAL|C},BR(NULL),GSU(B),0,0,0,NULL,NULL,NULL,0} IPDEF2("USERNAME", username_gsu, PM_DONTIMPORT|PM_RESTRICTED), IPDEF2("-", dash_gsu, PM_READONLY), IPDEF2("histchars", histchars_gsu, PM_DONTIMPORT), @@ -310,7 +310,7 @@ LCIPDEF("LC_TIME"), # endif #endif /* USE_LOCALE */ -#define IPDEF4(A,B) {{NULL,A,PM_INTEGER|PM_READONLY|PM_SPECIAL},BR((void *)B),GSU(varint_readonly_gsu),10,0,NULL,NULL,NULL,0} +#define IPDEF4(A,B) {{NULL,A,PM_INTEGER|PM_READONLY|PM_SPECIAL},BR((void *)B),GSU(varint_readonly_gsu),10,0,0,NULL,NULL,NULL,0} IPDEF4("!", &lastpid), IPDEF4("$", &mypid), IPDEF4("?", &lastval), @@ -319,21 +319,21 @@ IPDEF4("LINENO", &lineno), IPDEF4("PPID", &ppid), IPDEF4("ZSH_SUBSHELL", &zsh_subshell), -#define IPDEF5(A,B,F) {{NULL,A,PM_INTEGER|PM_SPECIAL},BR((void *)B),GSU(F),10,0,NULL,NULL,NULL,0} -#define IPDEF5U(A,B,F) {{NULL,A,PM_INTEGER|PM_SPECIAL|PM_UNSET},BR((void *)B),GSU(F),10,0,NULL,NULL,NULL,0} +#define IPDEF5(A,B,F) {{NULL,A,PM_INTEGER|PM_SPECIAL},BR((void *)B),GSU(F),10,0,0,NULL,NULL,NULL,0} +#define IPDEF5U(A,B,F) {{NULL,A,PM_INTEGER|PM_SPECIAL|PM_UNSET},BR((void *)B),GSU(F),10,0,0,NULL,NULL,NULL,0} IPDEF5("COLUMNS", &zterm_columns, zlevar_gsu), IPDEF5("LINES", &zterm_lines, zlevar_gsu), IPDEF5U("ZLE_RPROMPT_INDENT", &rprompt_indent, zlevar_gsu), IPDEF5("SHLVL", &shlvl, varinteger_gsu), /* Don't import internal integer status variables. */ -#define IPDEF6(A,B,F) {{NULL,A,PM_INTEGER|PM_SPECIAL|PM_DONTIMPORT},BR((void *)B),GSU(F),10,0,NULL,NULL,NULL,0} +#define IPDEF6(A,B,F) {{NULL,A,PM_INTEGER|PM_SPECIAL|PM_DONTIMPORT},BR((void *)B),GSU(F),10,0,0,NULL,NULL,NULL,0} IPDEF6("OPTIND", &zoptind, varinteger_gsu), IPDEF6("TRY_BLOCK_ERROR", &try_errflag, varinteger_gsu), IPDEF6("TRY_BLOCK_INTERRUPT", &try_interrupt, varinteger_gsu), -#define IPDEF7(A,B) {{NULL,A,PM_SCALAR|PM_SPECIAL},BR((void *)B),GSU(varscalar_gsu),0,0,NULL,NULL,NULL,0} -#define IPDEF7U(A,B) {{NULL,A,PM_SCALAR|PM_SPECIAL|PM_UNSET},BR((void *)B),GSU(varscalar_gsu),0,0,NULL,NULL,NULL,0} +#define IPDEF7(A,B) {{NULL,A,PM_SCALAR|PM_SPECIAL},BR((void *)B),GSU(varscalar_gsu),0,0,0,NULL,NULL,NULL,0} +#define IPDEF7U(A,B) {{NULL,A,PM_SCALAR|PM_SPECIAL|PM_UNSET},BR((void *)B),GSU(varscalar_gsu),0,0,0,NULL,NULL,NULL,0} IPDEF7("OPTARG", &zoptarg), IPDEF7("NULLCMD", &nullcmd), IPDEF7U("POSTEDIT", &postedit), @@ -348,7 +348,7 @@ IPDEF7("PS3", &prompt3), IPDEF7("PS4", &prompt4), IPDEF7("SPROMPT", &sprompt), -#define IPDEF8(A,B,C,D) {{NULL,A,D|PM_SCALAR|PM_SPECIAL},BR((void *)B),GSU(colonarr_gsu),0,0,NULL,C,NULL,0} +#define IPDEF8(A,B,C,D) {{NULL,A,D|PM_SCALAR|PM_SPECIAL},BR((void *)B),GSU(colonarr_gsu),0,0,0,NULL,C,NULL,0} IPDEF8("CDPATH", &cdpath, "cdpath", 0), IPDEF8("FIGNORE", &fignore, "fignore", 0), IPDEF8("FPATH", &fpath, "fpath", 0), @@ -361,7 +361,7 @@ IPDEF8("ZSH_EVAL_CONTEXT", &zsh_eval_context, "zsh_eval_context", PM_READONLY), /* MODULE_PATH is not imported for security reasons */ IPDEF8("MODULE_PATH", &module_path, "module_path", PM_DONTIMPORT|PM_RESTRICTED), -#define IPDEF9F(A,B,C,D) {{NULL,A,D|PM_ARRAY|PM_SPECIAL|PM_DONTIMPORT},BR((void *)B),GSU(vararray_gsu),0,0,NULL,C,NULL,0} +#define IPDEF9F(A,B,C,D) {{NULL,A,D|PM_ARRAY|PM_SPECIAL|PM_DONTIMPORT},BR((void *)B),GSU(vararray_gsu),0,0,0,NULL,C,NULL,0} #define IPDEF9(A,B,C) IPDEF9F(A,B,C,0) IPDEF9F("*", &pparams, NULL, PM_ARRAY|PM_SPECIAL|PM_DONTIMPORT|PM_READONLY), IPDEF9F("@", &pparams, NULL, PM_ARRAY|PM_SPECIAL|PM_DONTIMPORT|PM_READONLY), @@ -370,9 +370,9 @@ IPDEF9F("@", &pparams, NULL, PM_ARRAY|PM_SPECIAL|PM_DONTIMPORT|PM_READONLY), * This empty row indicates the end of parameters available in * all emulations. */ -{{NULL,NULL,0},BR(NULL),NULL_GSU,0,0,NULL,NULL,NULL,0}, +{{NULL,NULL,0},BR(NULL),NULL_GSU,0,0,0,NULL,NULL,NULL,0}, -#define IPDEF10(A,B) {{NULL,A,PM_ARRAY|PM_SPECIAL},BR(NULL),GSU(B),10,0,NULL,NULL,NULL,0} +#define IPDEF10(A,B) {{NULL,A,PM_ARRAY|PM_SPECIAL},BR(NULL),GSU(B),10,0,0,NULL,NULL,NULL,0} /* * The following parameters are not available in sh/ksh compatibility * @@ -407,7 +407,7 @@ IPDEF9F("path", &path, "PATH", PM_RESTRICTED), IPDEF10("pipestatus", pipestatus_gsu), -{{NULL,NULL,0},BR(NULL),NULL_GSU,0,0,NULL,NULL,NULL,0}, +{{NULL,NULL,0},BR(NULL),NULL_GSU,0,0,0,NULL,NULL,NULL,0}, }; /* @@ -895,7 +895,7 @@ createparam(char *name, int flags) } pm = oldpm; - pm->base = pm->width = 0; + pm->base = pm->width = pm->length = 0; oldpm = pm->old; } else { pm = (Param) zshcalloc(sizeof *pm); @@ -1008,6 +1008,7 @@ copyparam(Param tpm, Param pm, int fakecopy) */ tpm->node.flags = pm->node.flags; tpm->base = pm->base; + tpm->length = pm->length; tpm->width = pm->width; tpm->level = pm->level; if (!fakecopy) @@ -2595,6 +2596,7 @@ setarrvalue(Value v, char **val) *p = NULL; v->pm->gsu.a->setfn(v->pm, new); + v->pm->length = post_assignment_length; freearray(val); } } @@ -2908,6 +2910,8 @@ assignaparam(char *s, char **val, int flags) char **new; int lv = arrlen(val); + v->pm->length = lv + 1; + new = (char **) zalloc(sizeof(char *) * (lv + 2)); *new = ztrdup(getstrvalue(v)); memcpy(new+1, val, sizeof(char *) * (lv + 1)); |
