Tor adds trailing space character to log events
First noticed in legacy/trac#32164 (moved), where Tor Browser's "view of Tor logs" has a bonus space at the end of every line.
I believe it's Tor adding the space. This super simple hack:
diff --git a/src/feature/control/control_events.c b/src/feature/control/control_events.c
index 82ea943999..5ddfffeee8 100644
--- a/src/feature/control/control_events.c
+++ b/src/feature/control/control_events.c
@@ -1328,6 +1328,7 @@ control_event_logmsg(int severity, log_domain_mask_t domain, const char *msg)
default: s = "UnknownLogSeverity"; break;
}
++disable_log_messages;
+ printf("Sending \"650 %s %s\"\n", s, b?b:msg);
send_control_event(event, "650 %s %s\r\n", s, b?b:msg);
if (severity == LOG_ERR) {
/* Force a flush, since we may be about to die horribly */
shows it:
Sending "650 INFO circuit_free_(): Circuit 0 (id: 4) has been freed. "
I believe it comes from this snippet in control_event_logmsg():
if (strchr(msg, '\n')) {
char *cp;
b = tor_strdup(msg);
for (cp = b; *cp; ++cp)
if (*cp == '\r' || *cp == '\n')
*cp = ' ';
}
That is, we send in log lines that have \n in them, and the function helpfully turns the \n into a ' '.
Bug went into Tor 0.1.1.1-alpha in commit c2f6fe9b (way back in the days of the v0 control protocol).