diff options
-rw-r--r-- | changes/bug13205 | 5 | ||||
-rw-r--r-- | src/or/control.c | 4 |
2 files changed, 8 insertions, 1 deletions
diff --git a/changes/bug13205 b/changes/bug13205 new file mode 100644 index 0000000000..446ffcf47b --- /dev/null +++ b/changes/bug13205 @@ -0,0 +1,5 @@ + o Minor bugfixes: + - Return an error when the second or later arguments of the + "setevents" controller command are invalid events. Previously we + would return success while silently skipping invalid events. Fixes + bug 13205; bugfix on 0.2.3.2-alpha. Reported by "fpxnns". diff --git a/src/or/control.c b/src/or/control.c index 7038b2cfd5..df694930bd 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -949,7 +949,7 @@ static int handle_control_setevents(control_connection_t *conn, uint32_t len, const char *body) { - int event_code = -1; + int event_code; event_mask_t event_mask = 0; smartlist_t *events = smartlist_new(); @@ -963,6 +963,8 @@ handle_control_setevents(control_connection_t *conn, uint32_t len, continue; } else { int i; + event_code = -1; + for (i = 0; control_event_table[i].event_name != NULL; ++i) { if (!strcasecmp(ev, control_event_table[i].event_name)) { event_code = control_event_table[i].event_code; |