1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
--- koffice/filters/chalk/png/kis_png_converter.cc 2011-06-27 13:54:18.000000000 -0500
+++ koffice/filters/chalk/png/kis_png_converter.cc.new 2011-11-07 15:38:47.918508855 -0600
@@ -785,7 +785,7 @@
void KisPNGConverter::progress(png_structp png_ptr, png_uint_32 row_number, int pass)
{
- if(png_ptr == NULL || row_number > PNG_MAX_UINT || pass > 7) return;
+ if(png_ptr == NULL || row_number > PNG_UINT_31_MAX || pass > 7) return;
// setProgress(row_number);
}
--- koffice/filters/chalk/png/kis_png_converter.cc.gcc47 2012-04-26 16:38:35.805156927 -0400
+++ koffice/filters/chalk/png/kis_png_converter.cc 2012-04-26 16:49:27.179323394 -0400
@@ -43,6 +43,8 @@
#include <kis_paint_layer.h>
#include <kis_group_layer.h>
+#include <zlib.h>
+
namespace {
const TQ_UINT8 PIXEL_BLUE = 0;
@@ -222,6 +224,7 @@
// Read image profile
png_charp profile_name, profile_data;
+ unsigned char* uprofile_data = reinterpret_cast<unsigned char*>(profile_data);
int compression_type;
png_uint_32 proflen;
int number_of_passes = 1;
@@ -230,7 +233,7 @@
number_of_passes = png_set_interlace_handling(png_ptr);
KisProfile* profile = 0;
- if(png_get_iCCP(png_ptr, info_ptr, &profile_name, &compression_type, &profile_data, &proflen))
+ if(png_get_iCCP(png_ptr, info_ptr, &profile_name, &compression_type, &uprofile_data, &proflen))
{
TQByteArray profile_rawdata;
// XXX: Hardcoded for icc type -- is that correct for us?
@@ -627,7 +630,7 @@
} else { // Profile
char* name = new char[(*it)->type().length()+1];
strcpy(name, (*it)->type().ascii());
- png_set_iCCP(png_ptr, info_ptr, name, PNG_COMPRESSION_TYPE_BASE, (char*)(*it)->annotation().data(), (*it) -> annotation() . size());
+ png_set_iCCP(png_ptr, info_ptr, name, PNG_COMPRESSION_TYPE_BASE, (unsigned char*)(*it)->annotation().data(), (*it) -> annotation() . size());
}
++it;
}
|