aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJoakim Tjernlund <joakim.tjernlund@transmode.se>2010-03-10 18:23:57 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2010-03-12 18:52:44 -0500
commit51ea3f6a4571e9283e2ff79b74bcedfc2986dbe2 (patch)
tree1c898ddc9d39a62deccc54686011a45e1ad8e4a6 /lib
parente69eae65523b457a3ac4262a66cfff57f2c924a9 (diff)
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@transmode.se> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'lib')
-rw-r--r--lib/zlib_inflate/inffast.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/zlib_inflate/inffast.c b/lib/zlib_inflate/inffast.c
index fa62fc7a94f9..2c13ecc5bb2c 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)
286 } else { /* dist == 1 or dist == 2 */ 286 } else { /* dist == 1 or dist == 2 */
287 unsigned short pat16; 287 unsigned short pat16;
288 288
289 pat16 = *(sout-2+2*OFF); 289 pat16 = *(sout-1+OFF);
290 if (dist == 1) { 290 if (dist == 1) {
291 union uu mm; 291 union uu mm;
292 /* copy one char pattern to both bytes */ 292 /* copy one char pattern to both bytes */