# HG changeset patch # User reimar # Date 1243764867 0 # Node ID b69de727fd7ccb5fbf8feacb12a377410626c40b # Parent 14b65c6936250276299b5776266ee502db152357 Fix decoding of multithread-encoded lcl files on big-endian. diff -r 14b65c693625 -r b69de727fd7c lcldec.c --- a/lcldec.c Sun May 31 10:05:21 2009 +0000 +++ b/lcldec.c Sun May 31 10:14:27 2009 +0000 @@ -189,9 +189,9 @@ switch (c->compression) { case COMP_MSZH: if (c->flags & FLAG_MULTITHREAD) { - mthread_inlen = *(unsigned int*)encoded; + mthread_inlen = AV_RL32(encoded); mthread_inlen = FFMIN(mthread_inlen, len - 8); - mthread_outlen = *(unsigned int*)(encoded+4); + mthread_outlen = AV_RL32(encoded+4); mthread_outlen = FFMIN(mthread_outlen, c->decomp_size); mszh_dlen = mszh_decomp(encoded + 8, mthread_inlen, c->decomp_buf, c->decomp_size); if (mthread_outlen != mszh_dlen) { @@ -236,9 +236,9 @@ break; if (c->flags & FLAG_MULTITHREAD) { int ret; - mthread_inlen = *(unsigned int*)encoded; + mthread_inlen = AV_RL32(encoded); mthread_inlen = FFMIN(mthread_inlen, len - 8); - mthread_outlen = *(unsigned int*)(encoded+4); + mthread_outlen = AV_RL32(encoded+4); mthread_outlen = FFMIN(mthread_outlen, c->decomp_size); ret = zlib_decomp(avctx, encoded + 8, mthread_inlen, 0, mthread_outlen); if (ret < 0) return ret;