summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEirik Aavitsland <eirik.aavitsland@qt.io>2018-07-04 16:19:19 +0200
committerEirik Aavitsland <eirik.aavitsland@qt.io>2018-07-16 13:49:56 +0000
commit9a3359b57b2286286c3a83fcfab79545b3ce114b (patch)
tree14e3bcae3d062eed921f6ad5ecb8b9e66495fcfc
parentb0797cfed63d14707249a85e09c03177595a4df8 (diff)
Fix: png handler returning Mono QImage with color table < 2 items
A bit depth 1 png image may contain a single color table item. The png handler would in such cases reduce the size of the QImage color table to 1, which could easily lead to crashes later on. Task-number: QTBUG-69256 Change-Id: I01d78977c121bacc44b823231d8f32ca63d8a98c Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
-rw-r--r--src/gui/image/qpnghandler.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gui/image/qpnghandler.cpp b/src/gui/image/qpnghandler.cpp
index 9506a95506..42b9e71087 100644
--- a/src/gui/image/qpnghandler.cpp
+++ b/src/gui/image/qpnghandler.cpp
@@ -328,7 +328,7 @@ void setup_qt(QImage& image, png_structp png_ptr, png_infop info_ptr, QSize scal
return;
}
png_get_PLTE(png_ptr, info_ptr, &palette, &num_palette);
- image.setColorCount(num_palette);
+ image.setColorCount((format == QImage::Format_Mono) ? 2 : num_palette);
int i = 0;
if (png_get_tRNS(png_ptr, info_ptr, &trans_alpha, &num_trans, &trans_color_p) && trans_alpha) {
while (i < num_trans) {