From fc368e159d0da6735330bc82f645b842c9fdaea3 Mon Sep 17 00:00:00 2001 From: Juan RP Date: Fri, 17 Oct 2014 10:12:12 +0200 Subject: [PATCH] lib/portableproplib/prop_zlib.c: use a stack buffer to process compressed chunks. --- lib/portableproplib/prop_zlib.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/lib/portableproplib/prop_zlib.c b/lib/portableproplib/prop_zlib.c index f764eee4..539ee76b 100644 --- a/lib/portableproplib/prop_zlib.c +++ b/lib/portableproplib/prop_zlib.c @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2010-2012 Juan Romero Pardines. + * Copyright (c) 2010-2014 Juan Romero Pardines. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -58,7 +58,7 @@ prop ## type ## _internalize_from_zfile(const char *fname) \ struct _prop_object_internalize_mapped_file *mf; \ prop ## type ## _t obj = NULL; \ z_stream strm; \ - unsigned char *out; \ + unsigned char out[_READ_CHUNK+1]; \ char *uncomp_xml = NULL; \ size_t have; \ ssize_t totalsize = 0; \ @@ -78,13 +78,6 @@ prop ## type ## _internalize_from_zfile(const char *fname) \ if (uncomp_xml == NULL) \ goto out; \ \ - /* temporary output buffer for inflate */ \ - out = _PROP_MALLOC(_READ_CHUNK, M_TEMP); \ - if (out == NULL) { \ - _PROP_FREE(uncomp_xml, M_TEMP); \ - goto out; \ - } \ - \ /* Decompress the mmap'ed buffer with zlib */ \ strm.zalloc = Z_NULL; \ strm.zfree = Z_NULL; \ @@ -123,7 +116,6 @@ out2: \ (void)inflateEnd(&strm); \ out1: \ obj = prop ## type ## _internalize(uncomp_xml); \ - _PROP_FREE(out, M_TEMP); \ _PROP_FREE(uncomp_xml, M_TEMP); \ out: \ _prop_object_internalize_unmap_file(mf); \