]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
Btrfs: avoid possible NULL deref in io_ctl_drop_pages()
authorLi Zefan <lizf@cn.fujitsu.com>
Mon, 9 Jan 2012 06:27:42 +0000 (14:27 +0800)
committerGuru Anbalagane <guru.anbalagane@oracle.com>
Fri, 27 Jan 2012 01:20:36 +0000 (17:20 -0800)
If we run into some failure path in io_ctl_prepare_pages(),
io_ctl->pages[] array may have some NULL pointers.

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
(cherry picked from commit a1ee5a45818acc7f9c13e560827cf3e8735ac919)

fs/btrfs/free-space-cache.c

index 4040693d5d10f44f0a066463a089160e0feab420..dfaf62caf75ce588f0853f5069ffa901d1063d2d 100644 (file)
@@ -319,9 +319,11 @@ static void io_ctl_drop_pages(struct io_ctl *io_ctl)
        io_ctl_unmap_page(io_ctl);
 
        for (i = 0; i < io_ctl->num_pages; i++) {
-               ClearPageChecked(io_ctl->pages[i]);
-               unlock_page(io_ctl->pages[i]);
-               page_cache_release(io_ctl->pages[i]);
+               if (io_ctl->pages[i]) {
+                       ClearPageChecked(io_ctl->pages[i]);
+                       unlock_page(io_ctl->pages[i]);
+                       page_cache_release(io_ctl->pages[i]);
+               }
        }
 }