diff --git a/src/or/control.c b/src/or/control.c index 5122a207b1..6e558a3365 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -184,15 +184,24 @@ send_control_event(uint16_t event, uint16_t len, const char *body) { connection_t **conns; int n_conns, i; + size_t buflen; + char *buf; + + buflen = len + 2; + buf = tor_malloc_zero(buflen); + set_uint16(buf, htons(event)); + memcpy(buf+2, body, len); get_connection_array(&conns, &n_conns); for (i = 0; i < n_conns; ++i) { if (conns[i]->type == CONN_TYPE_CONTROL && conns[i]->state == CONTROL_CONN_STATE_OPEN && conns[i]->event_mask & (1<