diff options
author | Hyunchul Lee <hyc.lee@gmail.com> | 2022-04-30 08:30:28 +0900 |
---|---|---|
committer | Steve French <stfrench@microsoft.com> | 2022-05-21 15:01:38 -0500 |
commit | 4e3edd0092704b25626a0fe60a974f6f382ff93d (patch) | |
tree | b71d0371cbf97c073874f917f4e57e538eccd564 /fs/ksmbd | |
parent | 11659a8ddbd9c4c1ab6f3b8f52837178ef121b20 (diff) | |
download | linux-stable-4e3edd0092704b25626a0fe60a974f6f382ff93d.tar.gz linux-stable-4e3edd0092704b25626a0fe60a974f6f382ff93d.tar.bz2 linux-stable-4e3edd0092704b25626a0fe60a974f6f382ff93d.zip |
ksmbd: smbd: change the return value of get_sg_list
Make get_sg_list return EINVAL if there aren't
mapped scatterlists.
Signed-off-by: Hyunchul Lee <hyc.lee@gmail.com>
Acked-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'fs/ksmbd')
-rw-r--r-- | fs/ksmbd/transport_rdma.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/ksmbd/transport_rdma.c b/fs/ksmbd/transport_rdma.c index 4372d631735e..696ffd2ae661 100644 --- a/fs/ksmbd/transport_rdma.c +++ b/fs/ksmbd/transport_rdma.c @@ -1079,7 +1079,7 @@ static int get_sg_list(void *buf, int size, struct scatterlist *sg_list, int nen int offset, len; int i = 0; - if (nentries < get_buf_page_count(buf, size)) + if (size <= 0 || nentries < get_buf_page_count(buf, size)) return -EINVAL; offset = offset_in_page(buf); @@ -1111,7 +1111,7 @@ static int get_mapped_sg_list(struct ib_device *device, void *buf, int size, int npages; npages = get_sg_list(buf, size, sg_list, nentries); - if (npages <= 0) + if (npages < 0) return -EINVAL; return ib_dma_map_sg(device, sg_list, npages, dir); } |