* [PATCH] LZ4: compression/decompression signedness mismatch
@ 2013-07-12 9:24 Sergey Senozhatsky
[not found] ` <CADv+DGka4s1xc2UYqu+-EqHW8jA56JrtEE_sMsMOpc6NDmc6Zw@mail.gmail.com>
0 siblings, 1 reply; 7+ messages in thread
From: Sergey Senozhatsky @ 2013-07-12 9:24 UTC (permalink / raw)
To: Kyungsik Lee; +Cc: Andrew Morton, Yann Collet, linux-kernel
LZ4 compression and decompression functions require different
in signedness input/output parameters: unsigned char for
compression and signed char for decompression.
Change decompression API to require unsigned char.
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
---
include/linux/lz4.h | 8 ++++----
lib/lz4/lz4_decompress.c | 8 ++++----
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/include/linux/lz4.h b/include/linux/lz4.h
index d21c13f..c13f0bc 100644
--- a/include/linux/lz4.h
+++ b/include/linux/lz4.h
@@ -67,8 +67,8 @@ int lz4hc_compress(const unsigned char *src, size_t src_len,
* note : Destination buffer must be already allocated.
* slightly faster than lz4_decompress_unknownoutputsize()
*/
-int lz4_decompress(const char *src, size_t *src_len, char *dest,
- size_t actual_dest_len);
+int lz4_decompress(unsigned const char *src, size_t *src_len,
+ unsigned char *dest, size_t actual_dest_len);
/*
* lz4_decompress_unknownoutputsize()
@@ -82,6 +82,6 @@ int lz4_decompress(const char *src, size_t *src_len, char *dest,
* Error if return (< 0)
* note : Destination buffer must be already allocated.
*/
-int lz4_decompress_unknownoutputsize(const char *src, size_t src_len,
- char *dest, size_t *dest_len);
+int lz4_decompress_unknownoutputsize(unsigned const char *src, size_t src_len,
+ unsigned char *dest, size_t *dest_len);
#endif
diff --git a/lib/lz4/lz4_decompress.c b/lib/lz4/lz4_decompress.c
index d3414ea..7ceda1f 100644
--- a/lib/lz4/lz4_decompress.c
+++ b/lib/lz4/lz4_decompress.c
@@ -283,8 +283,8 @@ _output_error:
return (int) (-(((char *) ip) - source));
}
-int lz4_decompress(const char *src, size_t *src_len, char *dest,
- size_t actual_dest_len)
+int lz4_decompress(unsigned const char *src, size_t *src_len,
+ unsigned char *dest, size_t actual_dest_len)
{
int ret = -1;
int input_len = 0;
@@ -302,8 +302,8 @@ exit_0:
EXPORT_SYMBOL_GPL(lz4_decompress);
#endif
-int lz4_decompress_unknownoutputsize(const char *src, size_t src_len,
- char *dest, size_t *dest_len)
+int lz4_decompress_unknownoutputsize(unsigned const char *src, size_t src_len,
+ unsigned char *dest, size_t *dest_len)
{
int ret = -1;
int out_len = 0;
^ permalink raw reply related [flat|nested] 7+ messages in thread[parent not found: <CADv+DGka4s1xc2UYqu+-EqHW8jA56JrtEE_sMsMOpc6NDmc6Zw@mail.gmail.com>]
* Re: [PATCH] LZ4: compression/decompression signedness mismatch [not found] ` <CADv+DGka4s1xc2UYqu+-EqHW8jA56JrtEE_sMsMOpc6NDmc6Zw@mail.gmail.com> @ 2013-07-12 9:48 ` Sergey Senozhatsky 2013-07-18 21:18 ` Sergey Senozhatsky 0 siblings, 1 reply; 7+ messages in thread From: Sergey Senozhatsky @ 2013-07-12 9:48 UTC (permalink / raw) To: Yann Collet; +Cc: Sergey Senozhatsky, Kyungsik Lee, Andrew Morton, linux-kernel On (07/12/13 11:28), Yann Collet wrote: > The reference implementation, hosted at :� > [1]https://code.google.com/p/lz4/ > only proposes char* (signed) types as part of the interface contract. > I would recommend to keep it that way, to remain consistent. > Regards Crypto lz4 accepts u8 * for both compression and decompression: lz4_compress_crypto(struct crypto_tfm *tfm, const u8 *src, unsigned int slen, u8 *dst, unsigned int *dlen) lz4_decompress_crypto(struct crypto_tfm *tfm, const u8 *src, unsigned int slen, u8 *dst, unsigned int *dlen) Internally LZ4 may cast unsigned char* to signed char*, the same way you already do with compression: int lz4_compress(const unsigned char *src, size_t src_len, unsigned char *dst, size_t *dst_len, void *wrkmem) calls: lz4_compressctx(void *ctx, const char *source, char *dest, int isize, int maxoutputsize) At the moment API is a bit misaligned: unsiged char* for compression and signed char* for decompression. My 'real word' use case is, suppose: struct foo { [..] int (*compress)(const unsigned char *src, size_t src_len, unsigned char *dst, size_t *dst_len, void *wrkmem); int (*decompress)(const unsigned char *src, size_t src_len, unsigned char *dst, size_t *dst_len); }; and (for example) module also provides sysfs attribute, so user can switch select LZO or LZ4 compressions depending of his needs: ->compress = lzo1x_1_compress; ->decompress = lzo1x_decompress_safe; to ->compress = lz4_compress; ->decompress = lz4_decompress_unknownoutputsize; the last one produces unneccessary compilation warning. -ss > 2013/7/12 Sergey Senozhatsky <[2]sergey.senozhatsky@gmail.com> > > LZ4 compression and decompression functions require different > in signedness input/output parameters: unsigned char for > compression and signed char for decompression. > > Change decompression API to require unsigned char. > > Signed-off-by: Sergey Senozhatsky <[3]sergey.senozhatsky@gmail.com> > > --- > > �include/linux/lz4.h � � �| 8 ++++---- > �lib/lz4/lz4_decompress.c | 8 ++++---- > �2 files changed, 8 insertions(+), 8 deletions(-) > > diff --git a/include/linux/lz4.h b/include/linux/lz4.h > index d21c13f..c13f0bc 100644 > --- a/include/linux/lz4.h > +++ b/include/linux/lz4.h > @@ -67,8 +67,8 @@ int lz4hc_compress(const unsigned char *src, size_t > src_len, > � * � � note : �Destination buffer must be already allocated. > � * � � � � � � slightly faster than lz4_decompress_unknownoutputsize() > � */ > -int lz4_decompress(const char *src, size_t *src_len, char *dest, > - � � � � � � � size_t actual_dest_len); > +int lz4_decompress(unsigned const char *src, size_t *src_len, > + � � � � � � � unsigned char *dest, size_t actual_dest_len); > > �/* > � * lz4_decompress_unknownoutputsize() > @@ -82,6 +82,6 @@ int lz4_decompress(const char *src, size_t *src_len, > char *dest, > � * � � � � � � � Error if return (< 0) > � * � � note : �Destination buffer must be already allocated. > � */ > -int lz4_decompress_unknownoutputsize(const char *src, size_t src_len, > - � � � � � � � char *dest, size_t *dest_len); > +int lz4_decompress_unknownoutputsize(unsigned const char *src, size_t > src_len, > + � � � � � � � unsigned char *dest, size_t *dest_len); > �#endif > diff --git a/lib/lz4/lz4_decompress.c b/lib/lz4/lz4_decompress.c > index d3414ea..7ceda1f 100644 > --- a/lib/lz4/lz4_decompress.c > +++ b/lib/lz4/lz4_decompress.c > @@ -283,8 +283,8 @@ _output_error: > � � � � return (int) (-(((char *) ip) - source)); > �} > > -int lz4_decompress(const char *src, size_t *src_len, char *dest, > - � � � � � � � size_t actual_dest_len) > +int lz4_decompress(unsigned const char *src, size_t *src_len, > + � � � � � � � unsigned char *dest, size_t actual_dest_len) > �{ > � � � � int ret = -1; > � � � � int input_len = 0; > @@ -302,8 +302,8 @@ exit_0: > �EXPORT_SYMBOL_GPL(lz4_decompress); > �#endif > > -int lz4_decompress_unknownoutputsize(const char *src, size_t src_len, > - � � � � � � � char *dest, size_t *dest_len) > +int lz4_decompress_unknownoutputsize(unsigned const char *src, size_t > src_len, > + � � � � � � � unsigned char *dest, size_t *dest_len) > �{ > � � � � int ret = -1; > � � � � int out_len = 0; > > References > > Visible links > 1. https://code.google.com/p/lz4/ > 2. mailto:sergey.senozhatsky@gmail.com > 3. mailto:sergey.senozhatsky@gmail.com ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] LZ4: compression/decompression signedness mismatch 2013-07-12 9:48 ` Sergey Senozhatsky @ 2013-07-18 21:18 ` Sergey Senozhatsky 2013-07-18 21:29 ` Geert Uytterhoeven 0 siblings, 1 reply; 7+ messages in thread From: Sergey Senozhatsky @ 2013-07-18 21:18 UTC (permalink / raw) To: Kyungsik Lee; +Cc: Yann Collet, Andrew Morton, linux-kernel Hello, On (07/12/13 12:48), Sergey Senozhatsky wrote: > On (07/12/13 11:28), Yann Collet wrote: > > The reference implementation, hosted at :� > > [1]https://code.google.com/p/lz4/ > > only proposes char* (signed) types as part of the interface contract. > > I would recommend to keep it that way, to remain consistent. > > Regards > > Crypto lz4 accepts u8 * for both compression and decompression: > > lz4_compress_crypto(struct crypto_tfm *tfm, const u8 *src, > unsigned int slen, u8 *dst, unsigned int *dlen) > > lz4_decompress_crypto(struct crypto_tfm *tfm, const u8 *src, > unsigned int slen, u8 *dst, unsigned int *dlen) > > > Internally LZ4 may cast unsigned char* to signed char*, the same way you > already do with compression: > > int lz4_compress(const unsigned char *src, size_t src_len, > unsigned char *dst, size_t *dst_len, void *wrkmem) > > calls: > lz4_compressctx(void *ctx, > const char *source, char *dest, > int isize, int maxoutputsize) > + lib/decompress_unlz4.c STATIC int INIT decompress(unsigned char *buf, int in_len, int(*fill)(void*, unsigned int), int(*flush)(void*, unsigned int), unsigned char *output, int *posp, void(*error)(char *x) > > At the moment API is a bit misaligned: unsiged char* for compression and signed char* for > decompression. > > > My 'real word' use case is, suppose: > > struct foo { > [..] > int (*compress)(const unsigned char *src, size_t src_len, > unsigned char *dst, size_t *dst_len, void *wrkmem); > int (*decompress)(const unsigned char *src, size_t src_len, > unsigned char *dst, size_t *dst_len); > }; > > > and (for example) module also provides sysfs attribute, so user can switch select > LZO or LZ4 compressions depending of his needs: > > ->compress = lzo1x_1_compress; > ->decompress = lzo1x_decompress_safe; > > to > ->compress = lz4_compress; > ->decompress = lz4_decompress_unknownoutputsize; > > > the last one produces unneccessary compilation warning. > did you guys have a chance to review the patch? it does not change implementation/internals, just decompression exported symbols. -ss ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] LZ4: compression/decompression signedness mismatch 2013-07-18 21:18 ` Sergey Senozhatsky @ 2013-07-18 21:29 ` Geert Uytterhoeven 2013-07-19 8:27 ` Kyungsik Lee 0 siblings, 1 reply; 7+ messages in thread From: Geert Uytterhoeven @ 2013-07-18 21:29 UTC (permalink / raw) To: Sergey Senozhatsky Cc: Kyungsik Lee, Yann Collet, Andrew Morton, linux-kernel@vger.kernel.org On Thu, Jul 18, 2013 at 11:18 PM, Sergey Senozhatsky <sergey.senozhatsky@gmail.com> wrote: > On (07/12/13 12:48), Sergey Senozhatsky wrote: >> On (07/12/13 11:28), Yann Collet wrote: >> > The reference implementation, hosted at :� >> > [1]https://code.google.com/p/lz4/ >> > only proposes char* (signed) types as part of the interface contract. >> > I would recommend to keep it that way, to remain consistent. >> > Regards >> >> Crypto lz4 accepts u8 * for both compression and decompression: >> >> lz4_compress_crypto(struct crypto_tfm *tfm, const u8 *src, >> unsigned int slen, u8 *dst, unsigned int *dlen) >> >> lz4_decompress_crypto(struct crypto_tfm *tfm, const u8 *src, >> unsigned int slen, u8 *dst, unsigned int *dlen) >> >> >> Internally LZ4 may cast unsigned char* to signed char*, the same way you >> already do with compression: >> >> int lz4_compress(const unsigned char *src, size_t src_len, >> unsigned char *dst, size_t *dst_len, void *wrkmem) >> >> calls: >> lz4_compressctx(void *ctx, >> const char *source, char *dest, >> int isize, int maxoutputsize) >> > > > + lib/decompress_unlz4.c > STATIC int INIT decompress(unsigned char *buf, int in_len, > int(*fill)(void*, unsigned int), > int(*flush)(void*, unsigned int), > unsigned char *output, > int *posp, > void(*error)(char *x) > >> >> At the moment API is a bit misaligned: unsiged char* for compression and signed char* for >> decompression. >> >> >> My 'real word' use case is, suppose: >> >> struct foo { >> [..] >> int (*compress)(const unsigned char *src, size_t src_len, >> unsigned char *dst, size_t *dst_len, void *wrkmem); >> int (*decompress)(const unsigned char *src, size_t src_len, >> unsigned char *dst, size_t *dst_len); >> }; >> >> >> and (for example) module also provides sysfs attribute, so user can switch select >> LZO or LZ4 compressions depending of his needs: >> >> ->compress = lzo1x_1_compress; >> ->decompress = lzo1x_decompress_safe; >> >> to >> ->compress = lz4_compress; >> ->decompress = lz4_decompress_unknownoutputsize; >> >> >> the last one produces unneccessary compilation warning. >> > > did you guys have a chance to review the patch? it does not change > implementation/internals, just decompression exported symbols. IMHO, all these memory buffers should be of type "(const) void *", cfr. e.g. read(2) and memcpy(3). This avoids casts in the callers. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] LZ4: compression/decompression signedness mismatch 2013-07-18 21:29 ` Geert Uytterhoeven @ 2013-07-19 8:27 ` Kyungsik Lee 2013-07-19 9:04 ` Sergey Senozhatsky 2013-07-19 9:08 ` [PATCH] LZ4: compression/decompression signedness mismatch (v2) Sergey Senozhatsky 0 siblings, 2 replies; 7+ messages in thread From: Kyungsik Lee @ 2013-07-19 8:27 UTC (permalink / raw) To: Sergey Senozhatsky Cc: Geert Uytterhoeven, Yann Collet, Andrew Morton, linux-kernel@vger.kernel.org, hyojun.im, chan.jeong On Thu, Jul 18, 2013 at 11:29:57PM +0200, Geert Uytterhoeven wrote: > On Thu, Jul 18, 2013 at 11:18 PM, Sergey Senozhatsky > <sergey.senozhatsky@gmail.com> wrote: > > On (07/12/13 12:48), Sergey Senozhatsky wrote: > >> On (07/12/13 11:28), Yann Collet wrote: > >> > The reference implementation, hosted at :� > >> > [1]https://code.google.com/p/lz4/ > >> > only proposes char* (signed) types as part of the interface contract. > >> > I would recommend to keep it that way, to remain consistent. > >> > Regards > >> > >> Crypto lz4 accepts u8 * for both compression and decompression: > >> > >> lz4_compress_crypto(struct crypto_tfm *tfm, const u8 *src, > >> unsigned int slen, u8 *dst, unsigned int *dlen) > >> > >> lz4_decompress_crypto(struct crypto_tfm *tfm, const u8 *src, > >> unsigned int slen, u8 *dst, unsigned int *dlen) > >> > >> > >> Internally LZ4 may cast unsigned char* to signed char*, the same way you > >> already do with compression: > >> > >> int lz4_compress(const unsigned char *src, size_t src_len, > >> unsigned char *dst, size_t *dst_len, void *wrkmem) > >> > >> calls: > >> lz4_compressctx(void *ctx, > >> const char *source, char *dest, > >> int isize, int maxoutputsize) > >> > > > > > > + lib/decompress_unlz4.c > > STATIC int INIT decompress(unsigned char *buf, int in_len, > > int(*fill)(void*, unsigned int), > > int(*flush)(void*, unsigned int), > > unsigned char *output, > > int *posp, > > void(*error)(char *x) > > > >> > >> At the moment API is a bit misaligned: unsiged char* for compression and signed char* for > >> decompression. > >> > >> > >> My 'real word' use case is, suppose: > >> > >> struct foo { > >> [..] > >> int (*compress)(const unsigned char *src, size_t src_len, > >> unsigned char *dst, size_t *dst_len, void *wrkmem); > >> int (*decompress)(const unsigned char *src, size_t src_len, > >> unsigned char *dst, size_t *dst_len); > >> }; > >> > >> > >> and (for example) module also provides sysfs attribute, so user can switch select > >> LZO or LZ4 compressions depending of his needs: > >> > >> ->compress = lzo1x_1_compress; > >> ->decompress = lzo1x_decompress_safe; > >> > >> to > >> ->compress = lz4_compress; > >> ->decompress = lz4_decompress_unknownoutputsize; > >> > >> > >> the last one produces unneccessary compilation warning. > >> > > > > did you guys have a chance to review the patch? it does not change > > implementation/internals, just decompression exported symbols. > > IMHO, all these memory buffers should be of type "(const) void *", cfr. > e.g. read(2) and memcpy(3). > > This avoids casts in the callers. How about using "const unsigned char *" for the exported symbols in the patch? It is OK unless the patch changes the internal implementation. Thanks, Kyungsik ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] LZ4: compression/decompression signedness mismatch 2013-07-19 8:27 ` Kyungsik Lee @ 2013-07-19 9:04 ` Sergey Senozhatsky 2013-07-19 9:08 ` [PATCH] LZ4: compression/decompression signedness mismatch (v2) Sergey Senozhatsky 1 sibling, 0 replies; 7+ messages in thread From: Sergey Senozhatsky @ 2013-07-19 9:04 UTC (permalink / raw) To: Kyungsik Lee Cc: Geert Uytterhoeven, Yann Collet, Andrew Morton, linux-kernel@vger.kernel.org, hyojun.im, chan.jeong On (07/19/13 17:27), Kyungsik Lee wrote: > > >> On (07/12/13 11:28), Yann Collet wrote: > > >> > The reference implementation, hosted at :� > > >> > [1]https://code.google.com/p/lz4/ > > >> > only proposes char* (signed) types as part of the interface contract. > > >> > I would recommend to keep it that way, to remain consistent. > > >> > Regards > > >> > > >> Crypto lz4 accepts u8 * for both compression and decompression: > > >> > > >> lz4_compress_crypto(struct crypto_tfm *tfm, const u8 *src, > > >> unsigned int slen, u8 *dst, unsigned int *dlen) > > >> > > >> lz4_decompress_crypto(struct crypto_tfm *tfm, const u8 *src, > > >> unsigned int slen, u8 *dst, unsigned int *dlen) > > >> > > >> > > >> Internally LZ4 may cast unsigned char* to signed char*, the same way you > > >> already do with compression: > > >> > > >> int lz4_compress(const unsigned char *src, size_t src_len, > > >> unsigned char *dst, size_t *dst_len, void *wrkmem) > > >> > > >> calls: > > >> lz4_compressctx(void *ctx, > > >> const char *source, char *dest, > > >> int isize, int maxoutputsize) > > >> > > > > > > > > > + lib/decompress_unlz4.c > > > STATIC int INIT decompress(unsigned char *buf, int in_len, > > > int(*fill)(void*, unsigned int), > > > int(*flush)(void*, unsigned int), > > > unsigned char *output, > > > int *posp, > > > void(*error)(char *x) > > > > > >> > > >> At the moment API is a bit misaligned: unsiged char* for compression and signed char* for > > >> decompression. > > >> > > >> > > >> My 'real word' use case is, suppose: > > >> > > >> struct foo { > > >> [..] > > >> int (*compress)(const unsigned char *src, size_t src_len, > > >> unsigned char *dst, size_t *dst_len, void *wrkmem); > > >> int (*decompress)(const unsigned char *src, size_t src_len, > > >> unsigned char *dst, size_t *dst_len); > > >> }; > > >> > > >> > > >> and (for example) module also provides sysfs attribute, so user can switch select > > >> LZO or LZ4 compressions depending of his needs: > > >> > > >> ->compress = lzo1x_1_compress; > > >> ->decompress = lzo1x_decompress_safe; > > >> > > >> to > > >> ->compress = lz4_compress; > > >> ->decompress = lz4_decompress_unknownoutputsize; > > >> > > >> > > >> the last one produces unneccessary compilation warning. > > >> > > > > > > did you guys have a chance to review the patch? it does not change > > > implementation/internals, just decompression exported symbols. > > > > IMHO, all these memory buffers should be of type "(const) void *", cfr. > > e.g. read(2) and memcpy(3). > > > > This avoids casts in the callers. > > How about using "const unsigned char *" for the exported symbols in the > patch? will resend shortly. > It is OK unless the patch changes the internal implementation. > it doesn't. thanks, -ss ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH] LZ4: compression/decompression signedness mismatch (v2) 2013-07-19 8:27 ` Kyungsik Lee 2013-07-19 9:04 ` Sergey Senozhatsky @ 2013-07-19 9:08 ` Sergey Senozhatsky 1 sibling, 0 replies; 7+ messages in thread From: Sergey Senozhatsky @ 2013-07-19 9:08 UTC (permalink / raw) To: Kyungsik Lee Cc: Geert Uytterhoeven, Yann Collet, Andrew Morton, linux-kernel@vger.kernel.org, hyojun.im, chan.jeong LZ4 compression and decompression functions require different in signedness input/output parameters: unsigned char for compression and signed char for decompression. Change decompression API to require "(const) unsigned char *". v2: minor coding style fix. Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com> --- include/linux/lz4.h | 8 ++++---- lib/lz4/lz4_decompress.c | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/include/linux/lz4.h b/include/linux/lz4.h index d21c13f..4356686 100644 --- a/include/linux/lz4.h +++ b/include/linux/lz4.h @@ -67,8 +67,8 @@ int lz4hc_compress(const unsigned char *src, size_t src_len, * note : Destination buffer must be already allocated. * slightly faster than lz4_decompress_unknownoutputsize() */ -int lz4_decompress(const char *src, size_t *src_len, char *dest, - size_t actual_dest_len); +int lz4_decompress(const unsigned char *src, size_t *src_len, + unsigned char *dest, size_t actual_dest_len); /* * lz4_decompress_unknownoutputsize() @@ -82,6 +82,6 @@ int lz4_decompress(const char *src, size_t *src_len, char *dest, * Error if return (< 0) * note : Destination buffer must be already allocated. */ -int lz4_decompress_unknownoutputsize(const char *src, size_t src_len, - char *dest, size_t *dest_len); +int lz4_decompress_unknownoutputsize(const unsigned char *src, size_t src_len, + unsigned char *dest, size_t *dest_len); #endif diff --git a/lib/lz4/lz4_decompress.c b/lib/lz4/lz4_decompress.c index d3414ea..4c069b2 100644 --- a/lib/lz4/lz4_decompress.c +++ b/lib/lz4/lz4_decompress.c @@ -283,8 +283,8 @@ _output_error: return (int) (-(((char *) ip) - source)); } -int lz4_decompress(const char *src, size_t *src_len, char *dest, - size_t actual_dest_len) +int lz4_decompress(const unsigned char *src, size_t *src_len, + unsigned char *dest, size_t actual_dest_len) { int ret = -1; int input_len = 0; @@ -302,8 +302,8 @@ exit_0: EXPORT_SYMBOL_GPL(lz4_decompress); #endif -int lz4_decompress_unknownoutputsize(const char *src, size_t src_len, - char *dest, size_t *dest_len) +int lz4_decompress_unknownoutputsize(const unsigned char *src, size_t src_len, + unsigned char *dest, size_t *dest_len) { int ret = -1; int out_len = 0; ^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2013-07-19 9:09 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-12 9:24 [PATCH] LZ4: compression/decompression signedness mismatch Sergey Senozhatsky
[not found] ` <CADv+DGka4s1xc2UYqu+-EqHW8jA56JrtEE_sMsMOpc6NDmc6Zw@mail.gmail.com>
2013-07-12 9:48 ` Sergey Senozhatsky
2013-07-18 21:18 ` Sergey Senozhatsky
2013-07-18 21:29 ` Geert Uytterhoeven
2013-07-19 8:27 ` Kyungsik Lee
2013-07-19 9:04 ` Sergey Senozhatsky
2013-07-19 9:08 ` [PATCH] LZ4: compression/decompression signedness mismatch (v2) Sergey Senozhatsky
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.