]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
selinux: Add __GFP_NOWARN to allocation at str_read()
authorTetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Fri, 7 Sep 2018 16:42:58 +0000 (01:42 +0900)
committerSultan Alsawaf <sultan.alsawaf@canonical.com>
Wed, 24 Jul 2019 15:44:51 +0000 (09:44 -0600)
BugLink: https://bugs.launchpad.net/bugs/1836968
commit 4458bba09788e70e8fb39ad003f087cd9dfbd6ac upstream.

syzbot is hitting warning at str_read() [1] because len parameter can
become larger than KMALLOC_MAX_SIZE. We don't need to emit warning for
this case.

[1] https://syzkaller.appspot.com/bug?id=7f2f5aad79ea8663c296a2eedb81978401a908f0

Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Reported-by: syzbot <syzbot+ac488b9811036cea7ea0@syzkaller.appspotmail.com>
Signed-off-by: Paul Moore <paul@paul-moore.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Khalid Elmously <khalid.elmously@canonical.com>
security/selinux/ss/policydb.c

index 6e8c8056d7adfa7f57c6f0041087a49eb1575605..6688ac5b991ee433999272f34010981d4448b676 100644 (file)
@@ -1099,7 +1099,7 @@ static int str_read(char **strp, gfp_t flags, void *fp, u32 len)
        if ((len == 0) || (len == (u32)-1))
                return -EINVAL;
 
-       str = kmalloc(len + 1, flags);
+       str = kmalloc(len + 1, flags | __GFP_NOWARN);
        if (!str)
                return -ENOMEM;