diff --git a/src/modules/module-protocol-pulse/message.c b/src/modules/module-protocol-pulse/message.c index 4b906c79e..5dcbcb48a 100644 --- a/src/modules/module-protocol-pulse/message.c +++ b/src/modules/module-protocol-pulse/message.c @@ -145,7 +145,7 @@ static int read_arbitrary(struct message *m, const void **val, size_t *length) int res; if ((res = read_u32(m, &len)) < 0) return res; - if (m->offset + len > m->length) + if (m->offset > m->length || len > m->length - m->offset) return -ENOSPC; *val = m->data + m->offset; m->offset += len;