[PATCH] fs: 9p: avoid warning during xattr allocation

Fedor Pchelkin posted 1 patch 2 years ago
fs/9p/acl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] fs: 9p: avoid warning during xattr allocation
Posted by Fedor Pchelkin 2 years ago
An invalid server may reply with an xattr size which still fits into
ssize_t but is large enough to cause splat during kzalloc().

Add __GFP_NOWARN flag for the allocation. It seems client side can't do
much more about sanity checking here so it's better to return ENOMEM
silently.

Found by Linux Verification Center (linuxtesting.org) with Syzkaller.

Fixes: 85ff872d3f4a ("fs/9p: Implement POSIX ACL permission checking function")
Reported-by: syzbot+56fdf7f6291d819b9b19@syzkaller.appspotmail.com
Closes: https://lore.kernel.org/lkml/000000000000789bcd05c9aa3d5d@google.com/
Reported-by: syzbot+a83dc51a78f0f4cf20da@syzkaller.appspotmail.com
Closes: https://lore.kernel.org/lkml/00000000000086a03405eec3a706@google.com/
Suggested-by: Pavel Skripkin <paskripkin@gmail.com>
Signed-off-by: Fedor Pchelkin <pchelkin@ispras.ru>
---
 fs/9p/acl.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/9p/acl.c b/fs/9p/acl.c
index eed551d8555f..e19a46192d2e 100644
--- a/fs/9p/acl.c
+++ b/fs/9p/acl.c
@@ -29,7 +29,7 @@ static struct posix_acl *v9fs_fid_get_acl(struct p9_fid *fid, const char *name)
 	if (size == 0)
 		return ERR_PTR(-ENODATA);
 
-	value = kzalloc(size, GFP_NOFS);
+	value = kzalloc(size, GFP_NOFS | __GFP_NOWARN);
 	if (!value)
 		return ERR_PTR(-ENOMEM);
 
-- 
2.43.0
Re: [PATCH] fs: 9p: avoid warning during xattr allocation
Posted by Dominique Martinet 1 year, 11 months ago
Fedor Pchelkin wrote on Fri, Feb 02, 2024 at 03:13:17PM +0300:
> An invalid server may reply with an xattr size which still fits into
> ssize_t but is large enough to cause splat during kzalloc().


Ah, sorry for not replying to this earlier.. and I had forgotten about
it when something similar came up just now.

I've submitted a patch to limit such allocations to 64k:
https://lkml.kernel.org/r/20240304-xattr_maxsize-v1-1-322357ec6bdf@codewreck.org

Would you agree this makes this patch obsolete?

I'll go ahead and add the reported-by/closes you cited in this mail to
my commit.
-- 
Dominique Martinet | Asmadeus
Re: Re: [PATCH] fs: 9p: avoid warning during xattr allocation
Posted by Fedor Pchelkin 1 year, 11 months ago
On 24/03/04 10:09PM, Dominique Martinet wrote:
> Fedor Pchelkin wrote on Fri, Feb 02, 2024 at 03:13:17PM +0300:
> > An invalid server may reply with an xattr size which still fits into
> > ssize_t but is large enough to cause splat during kzalloc().
> 
> 
> Ah, sorry for not replying to this earlier.. and I had forgotten about
> it when something similar came up just now.
> 
> I've submitted a patch to limit such allocations to 64k:
> https://lkml.kernel.org/r/20240304-xattr_maxsize-v1-1-322357ec6bdf@codewreck.org
> 
> Would you agree this makes this patch obsolete?

Yes, thanks! Checking against the VFS limits is more appropriate.

> 
> I'll go ahead and add the reported-by/closes you cited in this mail to
> my commit.

Okay.

--
Fedor