From b26b6b3fe00b94a2d4370b1afd2644034947b6b8 Mon Sep 17 00:00:00 2001
From: Peter Stephenson
Date: Tue, 7 Jun 2022 10:02:14 +0100
Subject: Tweaks to MULTI_FUNC_DEF
Output multiple function definitions using "function" form.
Note exceptions to errors with NO_MULTI_FUNC_DEF
---
Src/text.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
(limited to 'Src/text.c')
diff --git a/Src/text.c b/Src/text.c
index 5cd7685fd..56127c457 100644
--- a/Src/text.c
+++ b/Src/text.c
@@ -578,11 +578,16 @@ gettext2(Estate state)
Wordcode end = p + WC_FUNCDEF_SKIP(code);
int nargs = *state->pc++;
+ if (nargs > 1)
+ taddstr("function ");
taddlist(state, nargs);
if (nargs)
taddstr(" ");
if (tjob) {
- taddstr("() { ... }");
+ if (nargs > 1)
+ taddstr("{ ... }");
+ else
+ taddstr("() { ... }");
state->pc = end;
if (!nargs) {
/*
@@ -594,7 +599,10 @@ gettext2(Estate state)
}
stack = 1;
} else {
- taddstr("() {");
+ if (nargs > 1)
+ taddstr("{");
+ else
+ taddstr("() {");
tindent++;
taddnl(1);
n = tpush(code, 1);
--
cgit v1.2.3
From 858b8de3d70fe76a3637c281bc2c8e3a6d961a2c Mon Sep 17 00:00:00 2001
From: Bart Schaefer
Date: Sat, 22 Apr 2023 14:40:23 -0700
Subject: 51670: prevent possible underflow in gettext()
---
ChangeLog | 4 ++++
Src/text.c | 2 +-
2 files changed, 5 insertions(+), 1 deletion(-)
(limited to 'Src/text.c')
diff --git a/ChangeLog b/ChangeLog
index 01167b0c3..92a95ffaa 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2023-04-22 Bart Schaefer
+
+ * 51670: Src/text.c: prevent possible underflow in gettext()
+
2023-04-18 Jun-ichi Takimoto
* 51663: Completion/Unix/Command/_ssh: fix a typo in 51582
diff --git a/Src/text.c b/Src/text.c
index 56127c457..8b1bd96b6 100644
--- a/Src/text.c
+++ b/Src/text.c
@@ -335,7 +335,7 @@ getjobtext(Eprog prog, Wordcode c)
tlim = tptr + JOBTEXTSIZE - 1;
tjob = 1;
gettext2(&s);
- if (tptr[-1] == Meta)
+ if (tptr > jbuf && tptr[-1] == Meta)
--tptr;
*tptr = '\0';
freeeprog(prog); /* mark as unused */
--
cgit v1.2.3