Also let the caller to xmalloc() the buffer
int compress_start()
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
---
compress.c | 19 +++++++++----------
1 files changed, 9 insertions(+), 10 deletions(-)
diff --git a/compress.c b/compress.c
index f6986c3..0d0b9d9 100644
--- a/compress.c
+++ b/compress.c
@@ -12,7 +12,7 @@ int compress_start(z_stream *stream,
unsigned char *in, unsigned long in_size,
unsigned char *out, unsigned long out_size)
{
- stream->next_out = (out ? out : xmalloc(out_size));
+ stream->next_out = out;
stream->avail_out = out_size;
stream->next_in = in;
stream->avail_in = in_size;
@@ -36,19 +36,18 @@ unsigned long compress_free(z_stream *stream)
return stream->total_out;
}
-unsigned long compress_all(int level, unsigned char *data,
- unsigned long size, unsigned char **out)
+unsigned long compress_all(int level, unsigned char *in,
+ unsigned long in_size, unsigned char **out)
{
- int bound, result;
+ unsigned long out_size;
z_stream stream;
- bound = compress_alloc(&stream, level, size);
- compress_start(&stream, data, size, NULL, bound);
+ out_size = compress_alloc(&stream, level, in_size);
+ *out = xmalloc(out_size);
- *out = stream.next_out;
- result = compress_next(&stream, Z_FINISH);
-
- if (result != Z_STREAM_END) {
+ if ( compress_start(&stream, in, in_size, *out, out_size) != Z_OK
+ || compress_next(&stream, Z_FINISH) != Z_STREAM_END)
+ {
compress_free(&stream);
free(*out);
*out = NULL;
--
1.5.4.rc4.39.g524a
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html| Washington Odhiambo | Weird Problem with NAT - more details |
| Greg Kroah-Hartman | [PATCH 001/196] Chinese: Add the known_regression URI to the HOWTO |
| Tarkan Erimer | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Andrew Morton | -mm merge plans for 2.6.23 |
git: | |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Gerrit Renker | [PATCH 0/37] dccp: Feature negotiation - last call for comments |
| David Miller | Re: [GIT]: Networking |
| Denys Fedoryshchenko | thousands of classes, e1000 TX unit hang |
