ubifs: BUG: Blocks commpressed with zlib
authorRicardo Ribalda Delgado <ricardo.ribalda@uam.es>
Mon, 27 Apr 2009 16:33:33 +0000 (18:33 +0200)
committerWolfgang Denk <wd@denx.de>
Thu, 30 Apr 2009 21:07:04 +0000 (23:07 +0200)
Blocks compressed with zlib dont have the full gzip header.

Without this patch, block compressed with zlib cannot be readed!

Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@uam.es>
fs/ubifs/ubifs.c
fs/ubifs/ubifs.h

index 427d84a4ddb7a0edb0e6b50bd90fc0f8372a16a6..91fc574a92aa8020022c3cb2b5cebc9c84834033 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 #include "ubifs.h"
+#include <u-boot/zlib.h>
 
 #if !defined(CONFIG_SYS_64BIT_VSPRINTF)
 #warning Please define CONFIG_SYS_64BIT_VSPRINTF for correct output!
@@ -34,14 +35,14 @@ DECLARE_GLOBAL_DATA_PTR;
 /* compress.c */
 
 /*
- * We need a wrapper for gunzip() because the parameters are
+ * We need a wrapper for zunzip() because the parameters are
  * incompatible with the lzo decompressor.
  */
 static int gzip_decompress(const unsigned char *in, size_t in_len,
                           unsigned char *out, size_t *out_len)
 {
        unsigned long len = in_len;
-       return gunzip(out, *out_len, (unsigned char *)in, &len);
+       return zunzip(out, *out_len, (unsigned char *)in, &len, 0, 0);
 }
 
 /* Fake description object for the "none" compressor */
index 91351de75a7d0772f14c908d269d28fc9b28fbff..43865aa66ed90ef9d267f0fec60fabc924160f47 100644 (file)
@@ -2172,6 +2172,7 @@ int ubifs_decompress(const void *buf, int len, void *out, int *out_len,
 /* todo: Move these to a common U-Boot header */
 int lzo1x_decompress_safe(const unsigned char *in, size_t in_len,
                          unsigned char *out, size_t *out_len);
-int gunzip(void *dst, int dstlen, unsigned char *src, unsigned long *lenp);
 
+int zunzip(void *dst, int dstlen, unsigned char *src, unsigned long *lenp,
+                                               int stoponerr, int offset);
 #endif /* !__UBIFS_H__ */