* [PATCH 08/11] ext4: Fix end of group handling in ext4_mb_init_cache [not found] <1380572952-30729-1-git-send-email-andi@firstfloor.org> @ 2013-09-30 20:29 ` Andi Kleen 2013-10-01 12:45 ` Theodore Ts'o 0 siblings, 1 reply; 3+ messages in thread From: Andi Kleen @ 2013-09-30 20:29 UTC (permalink / raw) To: linux-kernel; +Cc: Andi Kleen, tytso, linux-ext4 From: Andi Kleen <ak@linux.intel.com> The first loop in ext4_mb_init_cache can bail out when the end of all groups is reached. Unfortunately the later loops did not have that check and could access uninitialized buffer pointers in bh[]. Add the end of group check everywhere. Cc: tytso@mit.edu Cc: linux-ext4@vger.kernel.org Signed-off-by: Andi Kleen <ak@linux.intel.com> --- Makefile | 6 +++--- fs/ext4/mballoc.c | 6 +++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 8d0668f..be3ef83 100644 --- a/Makefile +++ b/Makefile @@ -663,9 +663,9 @@ KBUILD_CFLAGS += $(call cc-option,-fconserve-stack) KBUILD_ARFLAGS := $(call ar-option,D) # check for 'asm goto' -ifeq ($(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC)), y) - KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO -endif +#ifeq ($(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC)), y) +# KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO +#endif # Add user supplied CPPFLAGS, AFLAGS and CFLAGS as the last assignments KBUILD_CPPFLAGS += $(KCPPFLAGS) diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c index a41e3ba..619d8ed 100644 --- a/fs/ext4/mballoc.c +++ b/fs/ext4/mballoc.c @@ -878,6 +878,8 @@ static int ext4_mb_init_cache(struct page *page, char *incore) /* wait for I/O completion */ for (i = 0, group = first_group; i < groups_per_page; i++, group++) { + if (group >= ngroups) + break; if (bh[i] && ext4_wait_block_bitmap(sb, group, bh[i])) { err = -EIO; goto out; @@ -953,7 +955,9 @@ static int ext4_mb_init_cache(struct page *page, char *incore) out: if (bh) { - for (i = 0; i < groups_per_page; i++) + for (i = 0, group = first_group; + i < groups_per_page && group < ngroups; + i++, group++) brelse(bh[i]); if (bh != &bhs) kfree(bh); -- 1.8.3.1 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 08/11] ext4: Fix end of group handling in ext4_mb_init_cache 2013-09-30 20:29 ` [PATCH 08/11] ext4: Fix end of group handling in ext4_mb_init_cache Andi Kleen @ 2013-10-01 12:45 ` Theodore Ts'o 2013-10-01 14:20 ` Andi Kleen 0 siblings, 1 reply; 3+ messages in thread From: Theodore Ts'o @ 2013-10-01 12:45 UTC (permalink / raw) To: Andi Kleen; +Cc: linux-kernel, Andi Kleen, linux-ext4 On Mon, Sep 30, 2013 at 01:29:09PM -0700, Andi Kleen wrote: > From: Andi Kleen <ak@linux.intel.com> > > The first loop in ext4_mb_init_cache can bail out when the end of > all groups is reached. Unfortunately the later loops did not > have that check and could access uninitialized buffer pointers > in bh[]. Add the end of group check everywhere. > > Cc: tytso@mit.edu > Cc: linux-ext4@vger.kernel.org > Signed-off-by: Andi Kleen <ak@linux.intel.com> > --- > Makefile | 6 +++--- > fs/ext4/mballoc.c | 6 +++++- > 2 files changed, 8 insertions(+), 4 deletions(-) > > diff --git a/Makefile b/Makefile > index 8d0668f..be3ef83 100644 > --- a/Makefile > +++ b/Makefile > @@ -663,9 +663,9 @@ KBUILD_CFLAGS += $(call cc-option,-fconserve-stack) > KBUILD_ARFLAGS := $(call ar-option,D) > > # check for 'asm goto' > -ifeq ($(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC)), y) > - KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO > -endif > +#ifeq ($(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC)), y) > +# KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO > +#endif > > # Add user supplied CPPFLAGS, AFLAGS and CFLAGS as the last assignments > KBUILD_CPPFLAGS += $(KCPPFLAGS) What's this change all about, and why is it included in this patch? - Ted ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH 08/11] ext4: Fix end of group handling in ext4_mb_init_cache 2013-10-01 12:45 ` Theodore Ts'o @ 2013-10-01 14:20 ` Andi Kleen 0 siblings, 0 replies; 3+ messages in thread From: Andi Kleen @ 2013-10-01 14:20 UTC (permalink / raw) To: Theodore Ts'o, Andi Kleen, linux-kernel, Andi Kleen, linux-ext4 > What's this change all about, and why is it included in this > patch? Sorry that was me fat-fingering git add. Ignore that hunk. I needed it for the static analyzer, which does not understand asm goto. -Andi ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2013-10-01 14:20 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <1380572952-30729-1-git-send-email-andi@firstfloor.org> 2013-09-30 20:29 ` [PATCH 08/11] ext4: Fix end of group handling in ext4_mb_init_cache Andi Kleen 2013-10-01 12:45 ` Theodore Ts'o 2013-10-01 14:20 ` Andi Kleen
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).