diff options
author | Robert Ransom <rransom.8774@gmail.com> | 2011-06-23 15:16:25 -0700 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2011-09-07 12:14:58 -0400 |
commit | 8aad677bb7542376b053ecd12a0c6943e8cfa3c0 (patch) | |
tree | 5419943367e362e53b1d25990c72f6e3275b0834 | |
parent | b70a0a43750f6aabe800a83bcd7fdd6a5a14911b (diff) | |
download | tor-8aad677bb7542376b053ecd12a0c6943e8cfa3c0.tar tor-8aad677bb7542376b053ecd12a0c6943e8cfa3c0.tar.gz |
Die if tor_vasprintf fails in connection_printf_to_buf
tor_asprintf already asserts if it fails.
-rw-r--r-- | changes/bug3428b | 9 | ||||
-rw-r--r-- | src/or/control.c | 4 |
2 files changed, 11 insertions, 2 deletions
diff --git a/changes/bug3428b b/changes/bug3428b new file mode 100644 index 000000000..2cdd688f8 --- /dev/null +++ b/changes/bug3428b @@ -0,0 +1,9 @@ + o Minor bugfixes: + - Abort if tor_vasprintf fails in connection_printf_to_buf (a + utility function used in the control-port code). This shouldn't + ever happen unless Tor is completely out of memory, but if it + had happened and Tor somehow recovered from it, Tor could have + sent a log message to a control port in the middle of a reply to + a controller command. Fixes part of bug 3428. + + diff --git a/src/or/control.c b/src/or/control.c index 853f4c4e4..513e968cf 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -503,8 +503,8 @@ connection_printf_to_buf(control_connection_t *conn, const char *format, ...) va_end(ap); if (len < 0) { - log_warn(LD_BUG, "Unable to format string for controller."); - return; + log_err(LD_BUG, "Unable to format string for controller."); + tor_assert(0); } connection_write_to_buf(buf, (size_t)len, TO_CONN(conn)); |