[git commit branch/1_34_stable] awk: never return NULL from awk_printf()
Denys Vlasenko
vda.linux at googlemail.com
Wed Sep 29 22:15:44 UTC 2021
commit: https://git.busybox.net/busybox/commit/?id=0e0dd2149709217561d54b006c5383e087777cb4
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/1_34_stable
function old new delta
awk_printf 651 628 -23
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
editors/awk.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/editors/awk.c b/editors/awk.c
index 6644d7d6f..f6314ac72 100644
--- a/editors/awk.c
+++ b/editors/awk.c
@@ -2338,7 +2338,7 @@ static char *awk_printf(node *n, size_t *len)
b = NULL;
i = 0;
- while (*f) { /* "print one format spec" loop */
+ while (1) { /* "print one format spec" loop */
char *s;
char c;
char sv;
@@ -2363,7 +2363,7 @@ static char *awk_printf(node *n, size_t *len)
slen = f - s;
s = xstrndup(s, slen);
f++;
- goto tail; /* print "....%" part verbatim */
+ goto append; /* print "....%" part verbatim */
}
while (1) {
if (isalpha(c))
@@ -2412,7 +2412,7 @@ static char *awk_printf(node *n, size_t *len)
slen = strlen(s);
}
*f = sv;
-
+ append:
if (i == 0) {
b = s;
i = slen;
@@ -2422,7 +2422,7 @@ static char *awk_printf(node *n, size_t *len)
b = xrealloc(b, i + slen + 1);
strcpy(b + i, s);
i += slen;
- if (!c) /* tail? */
+ if (!c) /* s is NOT allocated and this is the last part of string? */
break;
free(s);
}
More information about the busybox-cvs
mailing list