--- unlzw.c.orig 2010-01-21 05:23:53.000000000 -0500 +++ unlzw.c 2010-01-21 05:25:51.000000000 -0500 @@ -248,7 +248,8 @@ int o; resetbuf: - e = insize-(o = (posbits>>3)); + o = posbits >> 3; + e = o <= insize ? insize - o : 0; for (i = 0 ; i < e ; ++i) { inbuf[i] = inbuf[i+o];