lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <4C816AAC.4090709@redhat.com> Date: Fri, 03 Sep 2010 16:37:48 -0500 From: Eric Sandeen <sandeen@...hat.com> To: ext4 development <linux-ext4@...r.kernel.org> Subject: Re: [PATCH 2/2 V2] ext4: don't bump nr_to_write if LONG_MAX Eric Sandeen wrote: > In some cases we can reach ext4_da_writepages() with > wbc->nr_to_write == LONG_MAX, !range_cyclic, and range_whole=1; > in this case we will try to bump it up by a factor of 8, which > leads to a desired_nr_to_write value of -8. Sorry Ted, hold off on this, it should have been LLONG_MAX of course, and I'm still looking for one other bit of brokennes I see. The 1/2 patch should be good though. -Eric > We still get through the logic without actually changing > wbc->nr_to_write because the other tests which would change > it don't trip due to the negative value, but it seems dangerous > to overflow desired_nr_to_write in the interim, it's not an > obvious situation. > > Signed-off-by: Eric Sandeen <sandeen@...hat.com> > --- > > (V2 minor commit message edits) > > diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c > index 93497f6..2e72a4a 100644 > --- a/fs/ext4/inode.c > +++ b/fs/ext4/inode.c > @@ -3004,9 +3004,11 @@ static int ext4_da_writepages(struct address_space *mapping, > * sbi->max_writeback_mb_bump whichever is smaller. > */ > max_pages = sbi->s_max_writeback_mb_bump << (20 - PAGE_CACHE_SHIFT); > - if (!range_cyclic && range_whole) > - desired_nr_to_write = wbc->nr_to_write * 8; > - else > + if (!range_cyclic && range_whole) { > + desired_nr_to_write = wbc->nr_to_write; > + if (desired_nr_to_write != LONG_MAX) > + desired_nr_to_write *= 8; > + } else > desired_nr_to_write = ext4_num_dirty_pages(inode, index, > max_pages); > if (desired_nr_to_write > max_pages) > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-ext4" in > the body of a message to majordomo@...r.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > > -- > To unsubscribe from this list: send the line "unsubscribe linux-ext4" in > the body of a message to majordomo@...r.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists