path: root/fs/ubifs
diff options
authorRicardo Ribalda Delgado <>2009-04-27 18:33:33 +0200
committerWolfgang Denk <>2009-04-30 23:07:04 +0200
commitc1a0fd5f2864e9d381f4a3dc948942cac974e89a (patch)
treedeb3c281cac62916927371a3ebcd9374901ecfe1 /fs/ubifs
parent35f6a943f7d92145d607c1d55f5c2e2eae5be630 (diff)
ubifs: BUG: Blocks commpressed with zlib
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 <>
Diffstat (limited to 'fs/ubifs')
2 files changed, 5 insertions, 3 deletions
diff --git a/fs/ubifs/ubifs.c b/fs/ubifs/ubifs.c
index 427d84a4dd..91fc574a92 100644
--- a/fs/ubifs/ubifs.c
+++ b/fs/ubifs/ubifs.c
@@ -24,6 +24,7 @@
#include "ubifs.h"
+#include <u-boot/zlib.h>
#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 */
diff --git a/fs/ubifs/ubifs.h b/fs/ubifs/ubifs.h
index 91351de75a..43865aa66e 100644
--- a/fs/ubifs/ubifs.h
+++ b/fs/ubifs/ubifs.h
@@ -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__ */
OpenPOWER on IntegriCloud