summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2015-01-06 14:28:02 -0500
committerNick Mathewson <nickm@torproject.org>2015-01-06 14:28:02 -0500
commit3401c34151a29fe962944ce3ea77f14056c87efa (patch)
treea251d325f815009844762340fb6cba871e7ae805
parenta034863b45455a2def6d957d54bec2530db4a1a6 (diff)
parent6d6643298dfda1b146c635e3858faec7e9c9631c (diff)
downloadtor-3401c34151a29fe962944ce3ea77f14056c87efa.tar.gz
tor-3401c34151a29fe962944ce3ea77f14056c87efa.zip
Merge remote-tracking branch 'public/bug14116_025'
-rw-r--r--changes/bug14116_0253
-rw-r--r--src/or/control.c8
2 files changed, 11 insertions, 0 deletions
diff --git a/changes/bug14116_025 b/changes/bug14116_025
new file mode 100644
index 0000000000..0859f626a5
--- /dev/null
+++ b/changes/bug14116_025
@@ -0,0 +1,3 @@
+ o Minor bugfixes (controller):
+ - Avoid crashing on a malformed EXTENDCIRCUIT command. Fixes bug 14116;
+ bugfix on 0.2.2.9-alpha.
diff --git a/src/or/control.c b/src/or/control.c
index d21682a19c..3dbaa1bdf2 100644
--- a/src/or/control.c
+++ b/src/or/control.c
@@ -2465,6 +2465,14 @@ handle_control_extendcircuit(control_connection_t *conn, uint32_t len,
goto done;
}
+ if (smartlist_len(args) < 2) {
+ connection_printf_to_buf(conn,
+ "512 syntax error: not enough arguments.\r\n");
+ SMARTLIST_FOREACH(args, char *, cp, tor_free(cp));
+ smartlist_free(args);
+ goto done;
+ }
+
smartlist_split_string(router_nicknames, smartlist_get(args,1), ",", 0, 0);
SMARTLIST_FOREACH(args, char *, cp, tor_free(cp));