]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
[PATCH] 32bit integer overflow in invalidate_inode_pages2()
authorOleg Drokin <green@linuxhacker.ru>
Fri, 2 Dec 2005 20:57:52 +0000 (20:57 +0000)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 14 Dec 2005 23:42:56 +0000 (15:42 -0800)
Fix a 32 bit integer overflow in invalidate_inode_pages2_range.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
mm/truncate.c

index 60c8764bfac2e20ff8f6f4420b0b8391e7dfa26d..0dff870c80a184e80dc16f1ccdced2be34a5c332 100644 (file)
@@ -291,8 +291,8 @@ int invalidate_inode_pages2_range(struct address_space *mapping,
                                         * Zap the rest of the file in one hit.
                                         */
                                        unmap_mapping_range(mapping,
-                                           page_index << PAGE_CACHE_SHIFT,
-                                           (end - page_index + 1)
+                                          (loff_t)page_index<<PAGE_CACHE_SHIFT,
+                                          (loff_t)(end - page_index + 1)
                                                        << PAGE_CACHE_SHIFT,
                                            0);
                                        did_range_unmap = 1;
@@ -301,7 +301,7 @@ int invalidate_inode_pages2_range(struct address_space *mapping,
                                         * Just zap this page
                                         */
                                        unmap_mapping_range(mapping,
-                                         page_index << PAGE_CACHE_SHIFT,
+                                         (loff_t)page_index<<PAGE_CACHE_SHIFT,
                                          PAGE_CACHE_SIZE, 0);
                                }
                        }