1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-10-29 05:21:00 +01:00

49166: fix coredump in ${name:offset:length} with ill-formatted length

This commit is contained in:
Jun-ichi Takimoto 2021-07-19 09:13:03 +09:00
parent 6e10067ffd
commit 9b3a292410
3 changed files with 15 additions and 9 deletions

View file

@ -1,3 +1,8 @@
2021-07-19 Jun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp>
* 49166: Src/subst.c, Test/D04parameter.ztst: fix coredump in
${name:offset:length} with ill-formatted length
2021-07-10 Oliver Kiddle <opk@zsh.org>
* 49158: Completion/Debian/Command/_dscverify,

View file

@ -3362,13 +3362,15 @@ colonsubscript:
return NULL;
}
if (*check_offset2) {
char *nextp;
check_offset = check_colon_subscript(check_offset2 + 1,
&check_offset2);
&nextp);
if (check_offset) {
check_offset2 = nextp;
if (*check_offset2 && *check_offset2 != ':') {
zerr("invalid length: %s", check_offset);
return NULL;
}
if (check_offset) {
length = mathevali(check_offset);
length_set = 1;
if (errflag)

View file

@ -2664,10 +2664,9 @@ F:behavior, see http://austingroupbugs.net/view.php?id=888
>3: pw
>4: pw
# Using a subshell because it segfaults.
("${: :${{{\"{{lorem ipsum dolor sit amet}}")
-f:regression test for workers/45843#1
?(eval):1: bad substitution
: "${foo:0:${\"}}"
1:broken length in ${name:offset:length} (workers/45843#1)
?(eval):1: unrecognized modifier `$'
$ZTST_testdir/../Src/zsh -fc $'$\\\n('
1:regression test for workers/45843#2: escaped newline in command substitution start token