aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Ransom <rransom.8774@gmail.com>2011-06-23 15:16:25 -0700
committerNick Mathewson <nickm@torproject.org>2011-09-07 12:14:58 -0400
commit8aad677bb7542376b053ecd12a0c6943e8cfa3c0 (patch)
tree5419943367e362e53b1d25990c72f6e3275b0834
parentb70a0a43750f6aabe800a83bcd7fdd6a5a14911b (diff)
downloadtor-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/bug3428b9
-rw-r--r--src/or/control.c4
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));