1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-06-12 07:28:04 +02:00

52517: ensure that %H is followed by {

The previous code would accept any character after %H assuming it
was a {, which was probably also a buffer overrun sometimes.
This commit is contained in:
Mikael Magnusson 2024-02-04 16:44:21 +01:00
parent ec446a6f34
commit 653be0823d
2 changed files with 8 additions and 4 deletions

View file

@ -2,6 +2,8 @@
* 52516: Src/prompt.c: fix crash in %H when hlgroups is empty * 52516: Src/prompt.c: fix crash in %H when hlgroups is empty
* 52517: Src/prompt.c: ensure that %H is followed by {
2024-02-03 Bart Schaefer <schaefer@zsh.org> 2024-02-03 Bart Schaefer <schaefer@zsh.org>
* unposted: Util/printdefines: updates and fix omissions * unposted: Util/printdefines: updates and fix omissions

View file

@ -605,10 +605,12 @@ putpromptchar(int doprint, int endchar)
applytextattributes(TSC_PROMPT); applytextattributes(TSC_PROMPT);
break; break;
case 'H': case 'H':
bv->fm = parsehighlight(bv->fm + 2, '}', &atr); if (bv->fm[1] == '{') {
if (atr != TXT_ERROR) { bv->fm = parsehighlight(bv->fm + 2, '}', &atr);
treplaceattrs(atr); if (atr != TXT_ERROR) {
applytextattributes(TSC_PROMPT); treplaceattrs(atr);
applytextattributes(TSC_PROMPT);
}
} }
break; break;
case '[': case '[':