QMacStyle::styleHint - test pixmap sizes

styleHint for SH_FocusFrame_Mask calls drawControl with a painter created
for pixmap. We only test pixmapSize.isValid(), but the size (0,0) is also 'isValid',
and we end up with a QPainter with an invalid paintEngine (null) crashing in
drawControl.

Task-number: QTBUG-54630
Change-Id: I84d1785f04ffb3e608812076a6d1bc36ffb92adc
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
This commit is contained in:
Timur Pocheptsov 2016-07-08 14:10:34 +02:00
parent 21c8a66a15
commit d7cb2fd44b

View File

@ -2961,7 +2961,7 @@ int QMacStyle::styleHint(StyleHint sh, const QStyleOption *opt, const QWidget *w
QImage img;
QSize pixmapSize = opt->rect.size();
if (pixmapSize.isValid()) {
if (!pixmapSize.isEmpty()) {
QPixmap pix(pixmapSize);
pix.fill(QColor(fillR, fillG, fillB));
QPainter pix_paint(&pix);