Messages in this thread Patch in this message | | | From | Christian Schoenebeck <> | Date | Tue, 22 Nov 2022 20:20:29 +0100 | Subject | [PATCH v2 2/2] net/9p: fix response size check in p9_check_errors() |
| |
Since commit 60ece0833b6c ("net/9p: allocate appropriate reduced message buffers") it is no longer appropriate to check server's response size against msize. Check against the previously allocated buffer capacity instead.
- Omit this size check entirely for zero-copy messages, as those always allocate 4k (P9_ZC_HDR_SZ) linear buffers which are not used for actual payload and can be much bigger than 4k.
- Replace p9_debug() by pr_err() to make sure this message is always printed in case this error is triggered.
- Add 9p message type to error message to ease investigation.
Signed-off-by: Christian Schoenebeck <linux_oss@crudebyte.com> Tested-by: Stefano Stabellini <sstabellini@kernel.org> Reported-by: kernel test robot <lkp@intel.com> --- net/9p/client.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/net/9p/client.c b/net/9p/client.c index c7935e392812..0ff25c2157ab 100644 --- a/net/9p/client.c +++ b/net/9p/client.c @@ -514,10 +514,9 @@ static int p9_check_errors(struct p9_client *c, struct p9_req_t *req) int ecode; err = p9_parse_header(&req->rc, NULL, &type, NULL, 0); - if (req->rc.size >= c->msize) { - p9_debug(P9_DEBUG_ERROR, - "requested packet size too big: %d\n", - req->rc.size); + if (req->rc.size > req->rc.capacity && !req->rc.zc) { + pr_err("requested packet size too big: %d does not fit %zu (type=%d)\n", + req->rc.size, req->rc.capacity, req->rc.id); return -EIO; } /* dump the response from server -- 2.30.2
| |