diff options
author | Nick Mathewson <nickm@torproject.org> | 2017-09-08 08:24:47 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2017-09-08 08:24:47 -0400 |
commit | 7a83cf75dc55dbac91ff5c0daf7c7418493cbea7 (patch) | |
tree | 7eb3ada77c03b4d66a7f5003b1b43ac964b0b4d4 /src/or/control.c | |
parent | 54fb1d0f7f25266eb85bc9031e5ea95deec5b9be (diff) | |
parent | f5092e711fb08dfdf7a356f8c58f10effe6fb831 (diff) | |
download | tor-7a83cf75dc55dbac91ff5c0daf7c7418493cbea7.tar.gz tor-7a83cf75dc55dbac91ff5c0daf7c7418493cbea7.zip |
Merge branch 'maint-0.3.0' into maint-0.3.1
Diffstat (limited to 'src/or/control.c')
-rw-r--r-- | src/or/control.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/or/control.c b/src/or/control.c index 9bcf1ee364..1837d49025 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -3591,12 +3591,15 @@ handle_control_postdescriptor(control_connection_t *conn, uint32_t len, int cache = 0; /* eventually, we may switch this to 1 */ const char *cp = memchr(body, '\n', len); - smartlist_t *args = smartlist_new(); - tor_assert(cp); + + if (cp == NULL) { + connection_printf_to_buf(conn, "251 Empty body\r\n"); + return 0; + } ++cp; char *cmdline = tor_memdup_nulterm(body, cp-body); - + smartlist_t *args = smartlist_new(); smartlist_split_string(args, cmdline, " ", SPLIT_SKIP_SPACE|SPLIT_IGNORE_BLANK, 0); SMARTLIST_FOREACH_BEGIN(args, char *, option) { @@ -4189,14 +4192,19 @@ handle_control_hspost(control_connection_t *conn, const char *body) { static const char *opt_server = "SERVER="; - smartlist_t *args = smartlist_new(); smartlist_t *hs_dirs = NULL; const char *encoded_desc = body; size_t encoded_desc_len = len; char *cp = memchr(body, '\n', len); + if (cp == NULL) { + connection_printf_to_buf(conn, "251 Empty body\r\n"); + return 0; + } char *argline = tor_strndup(body, cp-body); + smartlist_t *args = smartlist_new(); + /* If any SERVER= options were specified, try parse the options line */ if (!strcasecmpstart(argline, opt_server)) { /* encoded_desc begins after a newline character */ |