summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeckDev <jeck@jeckdev.com>2016-01-22 04:59:49 -0800
committerJeckDev <jeck@jeckdev.com>2016-01-22 04:59:49 -0800
commit2bec4a63459eaf641abba568932c2d2613e8f225 (patch)
tree91969172c789c3c1978ea81d2f07dce5252fd2fd
parent2ccff76a584c8e1566779c8daddc757b9bf87a56 (diff)
Fixed crash on uncompressed PNG files.
When writing an uncompressed PNG, deflateDynamic erroneously indexed a newly allocated block of datasize length using the datapos offset. This would crash anytime datapos > 0.
-rw-r--r--lodepng.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/lodepng.cpp b/lodepng.cpp
index 8665292..8e6e368 100644
--- a/lodepng.cpp
+++ b/lodepng.cpp
@@ -1768,7 +1768,7 @@ static unsigned deflateDynamic(ucvector* out, size_t* bp, Hash* hash,
else
{
if(!uivector_resize(&lz77_encoded, datasize)) ERROR_BREAK(83 /*alloc fail*/);
- for(i = datapos; i < dataend; ++i) lz77_encoded.data[i] = data[i]; /*no LZ77, but still will be Huffman compressed*/
+ for(i = datapos; i < dataend; ++i) lz77_encoded.data[i-datapos] = data[i]; /*no LZ77, but still will be Huffman compressed*/
}
if(!uivector_resizev(&frequencies_ll, 286, 0)) ERROR_BREAK(83 /*alloc fail*/);