diff --git a/plugins/platforms/fbdev/fb_backend.cpp b/plugins/platforms/fbdev/fb_backend.cpp --- a/plugins/platforms/fbdev/fb_backend.cpp +++ b/plugins/platforms/fbdev/fb_backend.cpp @@ -88,11 +88,20 @@ fd = open(deviceIdentifier().constData(), O_RDWR | O_CLOEXEC); if (fd < 0) { qCWarning(KWIN_FB) << "failed to open frame buffer device"; + emit initFailed(); return; } m_fd = fd; - queryScreenInfo(); + if (!queryScreenInfo()) { + qCWarning(KWIN_FB) << "failed to query framebuffer information"; + emit initFailed(); + return; + } initImageFormat(); + if (m_imageFormat == QImage::Format_Invalid) { + emit initFailed(); + return; + } setReady(true); emit screensQueried(); }