Message ID | 20230720153753.20497-1-pchelkin@ispras.ru (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | NFSv4/pnfs: minor fix for cleanup path in nfs4_get_device_info | expand |
On 20 Jul 2023, at 11:37, Fedor Pchelkin wrote: > It is an almost improbable error case but when page allocating loop in > nfs4_get_device_info() fails then we should only free the already > allocated pages, as __free_page() can't deal with NULL arguments. > > Found by Linux Verification Center (linuxtesting.org). > > Cc: stable@vger.kernel.org > Signed-off-by: Fedor Pchelkin <pchelkin@ispras.ru> This looks correct to me. Reviewed-by: Benjamin Coddington <bcodding@redhat.com> Ben
diff --git a/fs/nfs/pnfs_dev.c b/fs/nfs/pnfs_dev.c index ddbbf4fcda86..178001c90156 100644 --- a/fs/nfs/pnfs_dev.c +++ b/fs/nfs/pnfs_dev.c @@ -154,7 +154,7 @@ nfs4_get_device_info(struct nfs_server *server, set_bit(NFS_DEVICEID_NOCACHE, &d->flags); out_free_pages: - for (i = 0; i < max_pages; i++) + while (--i >= 0) __free_page(pages[i]); kfree(pages); out_free_pdev:
It is an almost improbable error case but when page allocating loop in nfs4_get_device_info() fails then we should only free the already allocated pages, as __free_page() can't deal with NULL arguments. Found by Linux Verification Center (linuxtesting.org). Cc: stable@vger.kernel.org Signed-off-by: Fedor Pchelkin <pchelkin@ispras.ru> --- fs/nfs/pnfs_dev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)