[<prev] [next>] [day] [month] [year] [list]
Date: Wed, 3 Mar 2010 12:35:10 +0100
From: Joakim Tjernlund <joakim.tjernlund@...nsmode.se>
To: Andrew Morton <akpm@...ux-foundation.org>
Cc: linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/2] inflate_fast: sout is already a short so ptr arith was off
by one.
Andrew Morton <akpm@...ux-foundation.org> wrote on 2010/03/03 08:42:17:
>
> On Wed, 3 Mar 2010 08:35:37 +0100 Joakim Tjernlund
> <joakim.tjernlund@...nsmode.se> wrote:
>
> > Andrew Morton <akpm@...ux-foundation.org> wrote on 2010/03/02 23:52:31:
> > >
> > > redo the patch, add a changelog which helps non-inffast.c people
> > > understand what it does, then resend?
> >
> > Not old, too new actually. You are sitting on a patch from me named
> > zlib: Make new optimized inflate endian independent
> > that was deferred to 2.6.34.
> > This patch is on top of that one.
>
> oh, I missed that.
>
> > What should I do now?
>
> Resending is never wrong ;)
How about this then(on top of zlib: Make new optimized inflate endian independent):
>From b3d08e29130e0368d4c8eede568c4c7ac4df66ae Mon Sep 17 00:00:00 2001
From: Joakim Tjernlund <Joakim.Tjernlund@...nsmode.se>
Date: Mon, 15 Feb 2010 17:51:58 +0100
Subject: [PATCH 1/2] inflate_fast: sout is already a short so ptr arith was off by one.
inflate_fast() can do either POST INC or PRE INC on its
pointers walking the memory to decompress. Default is
PRE INC.
The sout pointer offset was miscalculated in one case as
the calculation assumed sout was a char *
This breaks inflate_fast() iff configured to do POST INC.
Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@...nsmode.se>
---
lib/zlib_inflate/inffast.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/lib/zlib_inflate/inffast.c b/lib/zlib_inflate/inffast.c
index fa62fc7..2c13ecc 100644
--- a/lib/zlib_inflate/inffast.c
+++ b/lib/zlib_inflate/inffast.c
@@ -286,7 +286,7 @@ void inflate_fast(z_streamp strm, unsigned start)
} else { /* dist == 1 or dist == 2 */
unsigned short pat16;
- pat16 = *(sout-2+2*OFF);
+ pat16 = *(sout-1+OFF);
if (dist == 1) {
union uu mm;
/* copy one char pattern to both bytes */
--
1.6.4.4
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists