[PATCH 1/2] inflate_fast: sout is already a short so ptr arith was off by one.

From: Joakim Tjernlund
Date: Mon Feb 15 2010 - 11:51:58 EST


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@xxxxxxxxxxxx>
---
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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/