← Commit list

03d6d1014

Denys Vlasenko
Denys Vlasenko
2026-01-28
SUCCESS Duration: 142s

Subject

ash: fix \ooo octal printout in DEBUG code

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
gcc -Wp,-MD,applets/.usage.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer      -Iinclude -Iinclude -o applets/usage applets/usage.c

Build Log

(log yok)

Commit Diff GitHub →

shell/ash.c+12 -16
@@ -1190,7 +1190,7 @@ trace_vprintf(const char *fmt, va_list va)
if (debug != 1)
return;
vfprintf(tracefile, fmt, va);
- fprintf(tracefile, "\n");
+ putc('\n', tracefile);
}
static void
@@ -1202,21 +1202,17 @@ trace_puts(const char *s)
}
static void
-trace_puts_quoted(char *s)
+trace_puts_quoted(char *p)
{
- char *p;
- char c;
-
if (debug != 1)
return;
putc('"', tracefile);
- for (p = s; *p; p++) {
- switch ((unsigned char)*p) {
+ for (; *p; p++) {
+ unsigned char c = *p;
+ switch (c) {
case '\n': c = 'n'; goto backslash;
case '\t': c = 't'; goto backslash;
case '\r': c = 'r'; goto backslash;
- case '\"': c = '\"'; goto backslash;
- case '\\': c = '\\'; goto backslash;
case CTLESC: c = 'e'; goto backslash;
case CTLVAR: c = 'v'; goto backslash;
case CTLBACKQ: c = 'q'; goto backslash;
@@ -1224,21 +1220,21 @@ trace_puts_quoted(char *s)
case CTLTOPROC: c = 'p'; goto backslash;
case CTLFROMPROC: c = 'P'; goto backslash;
#endif
+ case '"':
+ case '\\':
backslash:
putc('\\', tracefile);
- putc(c, tracefile);
break;
default:
- if (*p >= ' ' && *p <= '~')
- putc(*p, tracefile);
- else {
+ if (c < ' ' || c > 0x7e) {
putc('\\', tracefile);
- putc((*p >> 6) & 03, tracefile);
- putc((*p >> 3) & 07, tracefile);
- putc(*p & 07, tracefile);
+ putc((c >> 6) + '0', tracefile);
+ putc(((c >> 3) & 07) + '0', tracefile);
+ c = (c & 07) + '0';
}
break;
}
+ putc(c, tracefile);
}
putc('"', tracefile);
}