Messages in this thread | | | From | Richard Weinberger <> | Date | Sun, 14 Aug 2016 11:00:33 +0200 | Subject | Re: [PATCH] UBIFS: fix assertion in layout_in_gaps() |
| |
Vincent,
On Fri, Aug 12, 2016 at 3:26 PM, Vincent Stehlé <vincent.stehle@intel.com> wrote: > An assertion in layout_in_gaps() verifies that the gap_lebs pointer is > below the maximum bound. When computing this maximum bound the idx_lebs > count is multiplied by sizeof(int), while C pointers arithmetic does take > into account the size of the pointed elements implicitly already. Remove > the multiplication to fix the assertion. > > Fixes: 1e51764a3c2ac05a ("UBIFS: add new flash file system") > Signed-off-by: Vincent Stehlé <vincent.stehle@intel.com> > Cc: Artem Bityutskiy <artem.bityutskiy@linux.intel.com> > --- > fs/ubifs/tnc_commit.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fs/ubifs/tnc_commit.c b/fs/ubifs/tnc_commit.c > index b45345d..51157da 100644 > --- a/fs/ubifs/tnc_commit.c > +++ b/fs/ubifs/tnc_commit.c > @@ -370,7 +370,7 @@ static int layout_in_gaps(struct ubifs_info *c, int cnt) > > p = c->gap_lebs; > do { > - ubifs_assert(p < c->gap_lebs + sizeof(int) * c->lst.idx_lebs); > + ubifs_assert(p < c->gap_lebs + c->lst.idx_lebs);
Good catch! Did you hit this assertion or was it found by review? I bet the latter since it is here since ever and given the wrongness it is unlikely to trigger.
-- Thanks, //richard
| |