diff --git a/io_uring/kbuf.c b/io_uring/kbuf.c index 556f4df25b0fa0119ea9a135311256b2fda2573a..52dba81c3f509cdcfa513b3e2784bc1724130b90 100644 --- a/io_uring/kbuf.c +++ b/io_uring/kbuf.c @@ -352,7 +352,7 @@ int io_provide_buffers_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe tmp = READ_ONCE(sqe->off); if (tmp > USHRT_MAX) return -E2BIG; - if (tmp + p->nbufs >= USHRT_MAX) + if (tmp + p->nbufs > USHRT_MAX) return -EINVAL; p->bid = tmp; return 0;