diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2021-09-09 19:26:39 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2021-09-09 19:26:39 +0200 |
commit | 857800c65584d544242c54eb873129c23ba20265 (patch) | |
tree | da3d99903bd02a05d1a6469dfbbd71b9b9514f07 | |
parent | e60c56932ed95eb1c72b12d7404d42798da61bca (diff) |
awk: never return NULL from awk_printf()
function old new delta
awk_printf 651 628 -23
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | editors/awk.c | 8 |
1 files 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); } |