Send a CRLF at the end of a STATUS_* event, not in the middle of it

Fixes bug 6094; bugfix on commit 3a9351b57e.
This commit is contained in:
Robert Ransom 2012-06-07 03:22:06 +00:00
parent 491dc3a601
commit 0dc47dfebf
2 changed files with 10 additions and 2 deletions

8
changes/bug6094 Normal file
View File

@ -0,0 +1,8 @@
o Major bugfixes:
- Send a CRLF at the end of each STATUS_* control-port event. A
change introduced in 0.2.3.16-alpha caused Tor to emit the CRLF
in the middle of a STATUS_* event; among other things, this
caused Vidalia to freeze. Fixes bug 6094; bugfix on
0.2.3.16-alpha.

View File

@ -3957,14 +3957,14 @@ control_event_status(int type, int severity, const char *format, va_list args)
log_warn(LD_BUG, "Unrecognized status severity %d", severity);
return -1;
}
if (tor_snprintf(format_buf, sizeof(format_buf), "650 %s %s\r\n",
if (tor_snprintf(format_buf, sizeof(format_buf), "650 %s %s",
status, sev)<0) {
log_warn(LD_BUG, "Format string too long.");
return -1;
}
tor_vasprintf(&user_buf, format, args);
send_control_event(type, ALL_FORMATS, "%s %s", format_buf, user_buf);
send_control_event(type, ALL_FORMATS, "%s %s\r\n", format_buf, user_buf);
tor_free(user_buf);
return 0;
}