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/widgets/effects | |
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/widgets/effects')
-rw-r--r-- | src/widgets/effects/qpixmapfilter.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/widgets/effects/qpixmapfilter.cpp b/src/widgets/effects/qpixmapfilter.cpp index 1f899c2660..705871719f 100644 --- a/src/widgets/effects/qpixmapfilter.cpp +++ b/src/widgets/effects/qpixmapfilter.cpp @@ -784,11 +784,11 @@ Q_WIDGETS_EXPORT QImage qt_halfScaled(const QImage &source) dest.setDevicePixelRatio(source.devicePixelRatioF()); const uchar *src = reinterpret_cast<const uchar*>(const_cast<const QImage &>(srcImage).bits()); - int sx = srcImage.bytesPerLine(); - int sx2 = sx << 1; + qsizetype sx = srcImage.bytesPerLine(); + qsizetype sx2 = sx << 1; uchar *dst = reinterpret_cast<uchar*>(dest.bits()); - int dx = dest.bytesPerLine(); + qsizetype dx = dest.bytesPerLine(); int ww = dest.width(); int hh = dest.height(); @@ -806,11 +806,11 @@ Q_WIDGETS_EXPORT QImage qt_halfScaled(const QImage &source) dest.setDevicePixelRatio(source.devicePixelRatioF()); const uchar *src = reinterpret_cast<const uchar*>(const_cast<const QImage &>(srcImage).bits()); - int sx = srcImage.bytesPerLine(); - int sx2 = sx << 1; + qsizetype sx = srcImage.bytesPerLine(); + qsizetype sx2 = sx << 1; uchar *dst = reinterpret_cast<uchar*>(dest.bits()); - int dx = dest.bytesPerLine(); + qsizetype dx = dest.bytesPerLine(); int ww = dest.width(); int hh = dest.height(); @@ -843,11 +843,11 @@ Q_WIDGETS_EXPORT QImage qt_halfScaled(const QImage &source) dest.setDevicePixelRatio(source.devicePixelRatioF()); const quint32 *src = reinterpret_cast<const quint32*>(const_cast<const QImage &>(srcImage).bits()); - int sx = srcImage.bytesPerLine() >> 2; - int sx2 = sx << 1; + qsizetype sx = srcImage.bytesPerLine() >> 2; + qsizetype sx2 = sx << 1; quint32 *dst = reinterpret_cast<quint32*>(dest.bits()); - int dx = dest.bytesPerLine() >> 2; + qsizetype dx = dest.bytesPerLine() >> 2; int ww = dest.width(); int hh = dest.height(); |