Patchwork [2/2] fix lzo usage on 64bit systems

login
register
mail settings
Submitter Sebastian Siewior
Date Feb. 23, 2009, 9:38 p.m.
Message ID <20090223213854.GB15989@Chamillionaire.breakpoint.cc>
Download mbox | patch
Permalink /patch/23584/
State Accepted
Commit e6801464b5bb61a5ae3c8ce57493e621f9f6252b
Headers show

Comments

Sebastian Siewior - Feb. 23, 2009, 9:38 p.m.
the compress size parameter in lzo is defined in the header file as lzo_uint.
This looks very much like uint32_t, I know, but is defined as unsigned long.
So on 64bit LE systems we zero some bytes near by and on BE systems we
get a size of zero.

Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
---
 compr_lzo.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
Artem Bityutskiy - Feb. 24, 2009, 7:38 a.m.
On Mon, 2009-02-23 at 22:38 +0100, Sebastian Andrzej Siewior wrote:
> the compress size parameter in lzo is defined in the header file as lzo_uint.
> This looks very much like uint32_t, I know, but is defined as unsigned long.
> So on 64bit LE systems we zero some bytes near by and on BE systems we
> get a size of zero.
> 
> Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>

Pushed, thank you!

Patch

diff --git a/compr_lzo.c b/compr_lzo.c
index a0bb362..3d7dad7 100644
--- a/compr_lzo.c
+++ b/compr_lzo.c
@@ -48,7 +48,7 @@  static void *lzo_compress_buf;
 static int jffs2_lzo_cmpr(unsigned char *data_in, unsigned char *cpage_out,
 			  uint32_t *sourcelen, uint32_t *dstlen, void *model)
 {
-	uint32_t compress_size;
+	lzo_uint compress_size;
 	int ret;
 
 	ret = lzo1x_999_compress(data_in, *sourcelen, lzo_compress_buf, &compress_size, lzo_mem);
@@ -69,7 +69,7 @@  static int jffs2_lzo_decompress(unsigned char *data_in, unsigned char *cpage_out
 				 uint32_t srclen, uint32_t destlen, void *model)
 {
 	int ret;
-	uint32_t dl;
+	lzo_uint dl;
 
 	ret = lzo1x_decompress_safe(data_in,srclen,cpage_out,&dl,NULL);