Fix DebugConsole::initGLTab
The initGLTab used GLPlatform::instance to determine whether OpenGL is used. It assumed a nullptr would mean no GL. But GLPlatform is a singleton which does not follow KWin's internal semantics. If there is no instance it will be created. Thus it's never null. This caused a heap-buffer-overflow as recorded by build.kde.org in case one just casts the scene pointer to SceneOpenGL. With this change this is fixed and inited correctly by verifying through the EffectsHandler whether opengl is used.
This commit is contained in:
parent
52cf47ff53
commit
9e4a858285
1 changed files with 2 additions and 2 deletions
|
@ -516,12 +516,12 @@ DebugConsole::~DebugConsole() = default;
|
||||||
|
|
||||||
void DebugConsole::initGLTab()
|
void DebugConsole::initGLTab()
|
||||||
{
|
{
|
||||||
GLPlatform *gl = GLPlatform::instance();
|
if (!effects || !effects->isOpenGLCompositing()) {
|
||||||
if (!gl) {
|
|
||||||
m_ui->noOpenGLLabel->setVisible(true);
|
m_ui->noOpenGLLabel->setVisible(true);
|
||||||
m_ui->glInfoScrollArea->setVisible(false);
|
m_ui->glInfoScrollArea->setVisible(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
GLPlatform *gl = GLPlatform::instance();
|
||||||
m_ui->noOpenGLLabel->setVisible(false);
|
m_ui->noOpenGLLabel->setVisible(false);
|
||||||
m_ui->glInfoScrollArea->setVisible(true);
|
m_ui->glInfoScrollArea->setVisible(true);
|
||||||
m_ui->glVendorStringLabel->setText(QString::fromLocal8Bit(gl->glVendorString()));
|
m_ui->glVendorStringLabel->setText(QString::fromLocal8Bit(gl->glVendorString()));
|
||||||
|
|
Loading…
Reference in a new issue