diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-02-13 11:31:14 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-02-20 16:11:02 +0100 |
commit | 14f1ec186f87ce50037044ccb079463676518ec5 (patch) | |
tree | 7e0918d1889cc93d52c5e996e79a733b2728e37b /src/plugins/imageformats/ico/qicohandler.cpp | |
parent | a99d7cf37213f86c8be55fc80a9785ec9a0d382d (diff) |
Make bytes-per-line safe for int overflow
Goes through the Qt code and make sure bytes-per-line calculations are
safe when they are too big for 32bit integers.
Change-Id: I88b2d74b3da82e91407d316aa932a4a37587c0cf
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/plugins/imageformats/ico/qicohandler.cpp')
-rw-r--r-- | src/plugins/imageformats/ico/qicohandler.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/plugins/imageformats/ico/qicohandler.cpp b/src/plugins/imageformats/ico/qicohandler.cpp index eb50f52bd6..1982e05344 100644 --- a/src/plugins/imageformats/ico/qicohandler.cpp +++ b/src/plugins/imageformats/ico/qicohandler.cpp @@ -356,7 +356,7 @@ void ICOReader::read1BitBMP(QImage & image) if (iod) { int h = image.height(); - int bpl = image.bytesPerLine(); + qsizetype bpl = image.bytesPerLine(); while (--h >= 0) { if (iod->read((char*)image.scanLine(h),bpl) != bpl) { @@ -405,7 +405,7 @@ void ICOReader::read8BitBMP(QImage & image) if (iod) { int h = icoAttrib.h; - int bpl = image.bytesPerLine(); + qsizetype bpl = image.bytesPerLine(); while (--h >= 0) { if (iod->read((char *)image.scanLine(h), bpl) != bpl) { @@ -425,7 +425,7 @@ void ICOReader::read16_24_32BMP(QImage & image) QRgb *p; QRgb *end; uchar *buf = new uchar[image.bytesPerLine()]; - int bpl = ((icoAttrib.w*icoAttrib.nbits+31)/32)*4; + qsizetype bpl = ((qsizetype(icoAttrib.w)*icoAttrib.nbits+31)/32)*4; uchar *b; while (--h >= 0) { |