Patch "ovl: relax WARN_ON in ovl_verify_area()" has been added to the 6.8-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    ovl: relax WARN_ON in ovl_verify_area()

to the 6.8-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     ovl-relax-warn_on-in-ovl_verify_area.patch
and it can be found in the queue-6.8 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit c11867df110a15e8ced19edb726156f9c95f4fbf
Author: Amir Goldstein <amir73il@xxxxxxxxx>
Date:   Sun Mar 17 13:59:43 2024 +0200

    ovl: relax WARN_ON in ovl_verify_area()
    
    [ Upstream commit 77a28aa476873048024ad56daf8f4f17d58ee48e ]
    
    syzbot hit an assertion in copy up data loop which looks like it is
    the result of a lower file whose size is being changed underneath
    overlayfs.
    
    This type of use case is documented to cause undefined behavior, so
    returning EIO error for the copy up makes sense, but it should not be
    causing a WARN_ON assertion.
    
    Reported-and-tested-by: syzbot+3abd99031b42acf367ef@xxxxxxxxxxxxxxxxxxxxxxxxx
    Fixes: ca7ab482401c ("ovl: add permission hooks outside of do_splice_direct()")
    Signed-off-by: Amir Goldstein <amir73il@xxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/fs/overlayfs/copy_up.c b/fs/overlayfs/copy_up.c
index 8586e2f5d2439..0762575a1e708 100644
--- a/fs/overlayfs/copy_up.c
+++ b/fs/overlayfs/copy_up.c
@@ -234,11 +234,11 @@ static int ovl_verify_area(loff_t pos, loff_t pos2, loff_t len, loff_t totlen)
 {
 	loff_t tmp;
 
-	if (WARN_ON_ONCE(pos != pos2))
+	if (pos != pos2)
 		return -EIO;
-	if (WARN_ON_ONCE(pos < 0 || len < 0 || totlen < 0))
+	if (pos < 0 || len < 0 || totlen < 0)
 		return -EIO;
-	if (WARN_ON_ONCE(check_add_overflow(pos, len, &tmp)))
+	if (check_add_overflow(pos, len, &tmp))
 		return -EIO;
 	return 0;
 }




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux