|
@@ -284,7 +284,7 @@ write_escaped_data(const char *data, size_t len, int translate_newlines,
|
|
|
{
|
|
|
size_t sz_out = len+8;
|
|
|
char *outp;
|
|
|
- const char *end;
|
|
|
+ const char *start = data, *end;
|
|
|
int i;
|
|
|
int start_of_line;
|
|
|
for (i=0; i<(int)len; ++i) {
|
|
@@ -296,7 +296,7 @@ write_escaped_data(const char *data, size_t len, int translate_newlines,
|
|
|
start_of_line = 1;
|
|
|
while (data < end) {
|
|
|
if (*data == '\n') {
|
|
|
- if (translate_newlines)
|
|
|
+ if (translate_newlines && data > start && data[-1] != '\r')
|
|
|
*outp++ = '\r';
|
|
|
start_of_line = 1;
|
|
|
} else if (*data == '.') {
|
|
@@ -1363,9 +1363,9 @@ getinfo_helper_events(control_connection_t *control_conn,
|
|
|
|
|
|
slen = strlen(path)+strlen(state)+20;
|
|
|
s = tor_malloc(slen+1);
|
|
|
- tor_snprintf(s, slen, "%lu %s %s",
|
|
|
+ tor_snprintf(s, slen, "%lu %s%s%s",
|
|
|
(unsigned long)TO_ORIGIN_CIRCUIT(circ)->global_identifier,
|
|
|
- state, path);
|
|
|
+ state, *path ? " " : "", path);
|
|
|
smartlist_add(status, s);
|
|
|
tor_free(path);
|
|
|
}
|