From ea760fa14946cc34b7f897cd8a17dd6b9ccbc16a Mon Sep 17 00:00:00 2001 From: Roger Dingledine Date: Mon, 12 Dec 2005 16:50:55 +0000 Subject: extendcircuit and attachstream would complain about not enough arguments, but then just keep on going anyway. svn:r5575 --- src/or/control.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/or/control.c') diff --git a/src/or/control.c b/src/or/control.c index 215abc745..7fc2a2829 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -1536,8 +1536,12 @@ handle_control_extendcircuit(connection_t *conn, uint32_t len, args = smartlist_create(); smartlist_split_string(args, body, " ", SPLIT_SKIP_SPACE|SPLIT_IGNORE_BLANK, 0); - if (smartlist_len(args)<2) + if (smartlist_len(args)<2) { connection_printf_to_buf(conn,"512 Missing argument to EXTENDCIRCUIT\r\n"); + SMARTLIST_FOREACH(args, char *, cp, tor_free(cp)); + smartlist_free(args); + goto done; + } zero_circ = !strcmp("0", (char*)smartlist_get(args,0)); if (!zero_circ && !(circ = get_circ(smartlist_get(args,0)))) { @@ -1663,8 +1667,12 @@ handle_control_attachstream(connection_t *conn, uint32_t len, args = smartlist_create(); smartlist_split_string(args, body, " ", SPLIT_SKIP_SPACE|SPLIT_IGNORE_BLANK, 0); - if (smartlist_len(args)<2) + if (smartlist_len(args)<2) { connection_printf_to_buf(conn,"512 Missing argument to ATTACHSTREAM\r\n"); + SMARTLIST_FOREACH(args, char *, cp, tor_free(cp)); + smartlist_free(args); + return 0; + } zero_circ = !strcmp("0", (char*)smartlist_get(args,1)); -- cgit v1.2.3