Merge tag 'v6.6-vfs.autofs' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 28 Aug 2023 18:39:14 +0000 (11:39 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 28 Aug 2023 18:39:14 +0000 (11:39 -0700)
Pull autofs fixes from Christian Brauner:
 "This fixes a memory leak in autofs reported by syzkaller and a missing
  conversion from uninterruptible to interruptible wake up when autofs
  is in catatonic mode"

* tag 'v6.6-vfs.autofs' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
  autofs: use wake_up() instead of wake_up_interruptible(()
  autofs: fix memory leak of waitqueues in autofs_catatonic_mode

fs/autofs/waitq.c

index 54c1f8b..33dd466 100644 (file)
@@ -32,8 +32,9 @@ void autofs_catatonic_mode(struct autofs_sb_info *sbi)
                wq->status = -ENOENT; /* Magic is gone - report failure */
                kfree(wq->name.name - wq->offset);
                wq->name.name = NULL;
-               wq->wait_ctr--;
-               wake_up_interruptible(&wq->queue);
+               wake_up(&wq->queue);
+               if (!--wq->wait_ctr)
+                       kfree(wq);
                wq = nwq;
        }
        fput(sbi->pipe);        /* Close the pipe */