diff --git a/lib/queue.c b/lib/queue.c index 55b8f6f3a..f3207b3a0 100644 --- a/lib/queue.c +++ b/lib/queue.c @@ -36,6 +36,11 @@ /** Initialize MPMC queue */ int queue_init(struct queue *q, size_t size, const struct memtype *mem) { + + /* Queue size must be 2 exponent */ + if (!IS_POW2(size)) + return -1; + q->mem = mem; q->buffer_mask = size - 1; q->buffer = memory_alloc(q->mem, sizeof(q->buffer[0]) * size);