Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
5.9.1
-
None
-
Ubuntu 16.10, x64
Qt 5.9.1+dfsg-10ubuntu1
Description
Start from Qt 5.9.1, when i draw text, on QImage, in some resolutions (if one side of image >= 2051px), when it use Grayscale8 color space, and this text, still outside image region (intersect of one image side), i get crash:
*** stack smashing detected ***: <unknown> terminated
The program has unexpectedly finished.
#include <QGuiApplication>
#include <QCoreApplication>
#include <QImage>
#include <QPainter>
int main(int argc, char *argv[])
{
QGuiApplication a(argc, argv);
QImage img(2051, 100, QImage::Format_Grayscale8);
QPainter p;
p.begin(&img);
p.eraseRect(QRect(QPoint(0,0),img.size()));
QFont f=p.font();
f.setPointSize(10);
p.setFont(f);
//create rect, interset of one side image
QRect textRect(img.width()-50,30,100,50);
QString text("hello world!");
p.setBrush(QBrush(QColor(0,0,0,200)));
p.setPen(Qt::NoPen);
p.drawRect(textRect);
p.setPen(QColor(255,255,255,255));
//at rhis point, i have crash:
//*** stack smashing detected ***: <unknown> terminated
//The program has unexpectedly finished.
p.drawText(textRect, 0, text);
p.end();
img.save("/home/nick1710/testimage.png");
}
I upload sample program, to repeat bug. In Qt 5.6 all work fine.