summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--changes/bug132055
-rw-r--r--src/or/control.c4
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;