mirror of
https://github.com/Stichting-MINIX-Research-Foundation/u-boot.git
synced 2025-09-11 13:08:31 -04:00
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 <ricardo.ribalda@uam.es>
This commit is contained in:
parent
35f6a943f7
commit
c1a0fd5f28
@ -24,6 +24,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "ubifs.h"
|
#include "ubifs.h"
|
||||||
|
#include <u-boot/zlib.h>
|
||||||
|
|
||||||
#if !defined(CONFIG_SYS_64BIT_VSPRINTF)
|
#if !defined(CONFIG_SYS_64BIT_VSPRINTF)
|
||||||
#warning Please define CONFIG_SYS_64BIT_VSPRINTF for correct output!
|
#warning Please define CONFIG_SYS_64BIT_VSPRINTF for correct output!
|
||||||
@ -34,14 +35,14 @@ DECLARE_GLOBAL_DATA_PTR;
|
|||||||
/* compress.c */
|
/* 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.
|
* incompatible with the lzo decompressor.
|
||||||
*/
|
*/
|
||||||
static int gzip_decompress(const unsigned char *in, size_t in_len,
|
static int gzip_decompress(const unsigned char *in, size_t in_len,
|
||||||
unsigned char *out, size_t *out_len)
|
unsigned char *out, size_t *out_len)
|
||||||
{
|
{
|
||||||
unsigned long len = in_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 */
|
/* Fake description object for the "none" compressor */
|
||||||
|
@ -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 */
|
/* todo: Move these to a common U-Boot header */
|
||||||
int lzo1x_decompress_safe(const unsigned char *in, size_t in_len,
|
int lzo1x_decompress_safe(const unsigned char *in, size_t in_len,
|
||||||
unsigned char *out, size_t *out_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__ */
|
#endif /* !__UBIFS_H__ */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user