mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 18:51:56 -04:00
[PATCH] fix possible PAGE_CACHE_SHIFT overflows
We've had two instances recently of overflows when doing 64_bit_value = (32_bit_value << PAGE_CACHE_SHIFT) I did a tree-wide grep of `<<.*PAGE_CACHE_SHIFT' and this is the result. - afs_rxfs_fetch_descriptor.offset is of type off_t, which seems broken. - jfs and jffs are limited to 4GB anyway. - reiserfs map_block_for_writepage() takes an unsigned long for the block - it should take sector_t. (It'll fail for huge filesystems with blocksize<PAGE_CACHE_SIZE) - cramfs_read() needs to use sector_t (I think cramsfs is busted on large filesystems anyway) - affs is limited in file size anyway. - I generally didn't fix 32-bit overflows in directory operations. - arm's __flush_dcache_page() is peculiar. What if the page lies beyond 4G? - gss_wrap_req_priv() needs checking (snd_buf->page_base) Cc: Oleg Drokin <[email protected]> Cc: David Howells <[email protected]> Cc: David Woodhouse <[email protected]> Cc: <[email protected]> Cc: Christoph Hellwig <[email protected]> Cc: Anton Altaparmakov <[email protected]> Cc: Jeff Dike <[email protected]> Cc: Paolo 'Blaisorblade' Giarrusso <[email protected]> Cc: Roman Zippel <[email protected]> Cc: <[email protected]> Cc: Miklos Szeredi <[email protected]> Cc: Russell King <[email protected]> Cc: Trond Myklebust <[email protected]> Cc: Neil Brown <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
parent
676121fcb6
commit
54b21a7992
8 changed files with 17 additions and 17 deletions
|
|
@ -137,7 +137,7 @@ static inline void afs_dir_check_page(struct inode *dir, struct page *page)
|
|||
#endif
|
||||
|
||||
/* determine how many magic numbers there should be in this page */
|
||||
latter = dir->i_size - (page->index << PAGE_CACHE_SHIFT);
|
||||
latter = dir->i_size - page_offset(page);
|
||||
if (latter >= PAGE_SIZE)
|
||||
qty = PAGE_SIZE;
|
||||
else
|
||||
|
|
|
|||
Loading…
Reference in a new issue