hrev52846 adds 1 changeset to branch 'master'
old head: 7db28d3803bf8ff39391f65cd38de2bfda5bb9ae
new head: 0ca56bdecd3bcf9de5793c3ab8347a2ee6302c88
overview:
https://git.haiku-os.org/haiku/log/?qt=range&q=0ca56bdecd3b+%5E7db28d3803bf
----------------------------------------------------------------------------
0ca56bdecd3b: translators/wonderbrush: Fix PVS 2320
Fix memory leak when realloc() fails.
Change-Id: I9665b1e618e675e324eb75aec586a41181957ced
Reviewed-on: https://review.haiku-os.org/c/1015
Reviewed-by: Barrett17 <b.vitruvio@xxxxxxxxx>
[ Murai Takashi <tmurai01@xxxxxxxxx> ]
----------------------------------------------------------------------------
Revision: hrev52846
Commit: 0ca56bdecd3bcf9de5793c3ab8347a2ee6302c88
URL: https://git.haiku-os.org/haiku/commit/?id=0ca56bdecd3b
Author: Murai Takashi <tmurai01@xxxxxxxxx>
Date: Wed Jan 30 10:51:57 2019 UTC
Committer: Barrett17 <b.vitruvio@xxxxxxxxx>
Commit-Date: Thu Feb 7 11:43:07 2019 UTC
----------------------------------------------------------------------------
1 file changed, 11 insertions(+), 5 deletions(-)
.../wonderbrush/support/bitmap_compression.cpp | 16 +++++++++++-----
----------------------------------------------------------------------------
diff --git a/src/add-ons/translators/wonderbrush/support/bitmap_compression.cpp
b/src/add-ons/translators/wonderbrush/support/bitmap_compression.cpp
index 45e263d253..14a4714f87 100644
--- a/src/add-ons/translators/wonderbrush/support/bitmap_compression.cpp
+++ b/src/add-ons/translators/wonderbrush/support/bitmap_compression.cpp
@@ -36,11 +36,17 @@ compress_bitmap_zlib(const BBitmap* bitmap, void** buffer,
unsigned* size)
srcLength,
3);
if (ret == Z_OK) {
-//printf("zlib compressed %ld bytes bitmap into %d bytes (%f%%)\n", srcLength,
*size, ((float)*size / (float)srcLength) * 100.0);
- if ((unsigned)ceilf(srcLength * 1.01) + 12 !=
*size)
- *buffer = realloc(*buffer, *size);
- result = true;
- } else {
+// printf("zlib compressed %ld bytes bitmap into %d bytes (%f%%)\n",
+// srcLength, *size, ((float)*size / (float)srcLength) * 100.0);
+ if ((unsigned)ceilf(srcLength * 1.01) + 12 !=
*size) {
+ void* tmpBuffer = realloc(*buffer,
*size);
+ if (tmpBuffer) {
+ *buffer = tmpBuffer;
+ result = true;
+ }
+ }
+ }
+ if (ret != Z_OK || !result) {
// error compressing
free(*buffer);
*buffer = NULL;