← Commit list

caa93ecdd

Denys Vlasenko
Denys Vlasenko
2021-07-11
SUCCESS Duration: 154s

Subject

awk: fix corner case in awk_printf

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

editors/awk.c+4 -4
@@ -2359,11 +2359,11 @@ static char *awk_printf(node *n, size_t *len)
* printf "%99999s", "BOOM"
*/
if (c == 'c') {
- c = is_numeric(arg) ? getvar_i(arg) : *getvar_s(arg);
- s = xasprintf(s, c);
- /* + 1 if c == NUL: handle printf "%c" 0 case
+ char cc = is_numeric(arg) ? getvar_i(arg) : *getvar_s(arg);
+ s = xasprintf(s, cc);
+ /* + 1 if cc == NUL: handle printf "%c" 0 case
* (and printf "%22c" 0 etc, but still fails for e.g. printf "%-22c" 0) */
- slen = strlen(s) + (c == '\0');
+ slen = strlen(s) + (cc == '\0');
} else {
if (c == 's') {
s = xasprintf(s, getvar_s(arg));