summaryrefslogtreecommitdiff
path: root/src/protocols/Screencopy.cpp
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2026-03-01 15:31:22 +0000
committerVaxry <vaxry@vaxry.net>2026-03-01 15:31:22 +0000
commit8ad96a95d62b16d5c9a141ad5a37b51388a68aef (patch)
tree4dd0e133e76e1ad0d6a33d7e4e32ac00e13b52de /src/protocols/Screencopy.cpp
parentf41e3c220366c4432cbef04c7d7a3f28a5d702b4 (diff)
screencopy: fix nullptr deref if shm format is weird
Diffstat (limited to 'src/protocols/Screencopy.cpp')
-rw-r--r--src/protocols/Screencopy.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/protocols/Screencopy.cpp b/src/protocols/Screencopy.cpp
index 74b3b608..9d30be51 100644
--- a/src/protocols/Screencopy.cpp
+++ b/src/protocols/Screencopy.cpp
@@ -87,6 +87,13 @@ CScreencopyFrame::CScreencopyFrame(SP<CZwlrScreencopyFrameV1> resource_, WP<CScr
auto bufSize = m_frame->bufferSize();
const auto PSHMINFO = NFormatUtils::getPixelFormatFromDRM(format);
+
+ if (!PSHMINFO) {
+ LOGM(Log::ERR, "No pixel format for drm format");
+ m_resource->sendFailed();
+ return;
+ }
+
const auto stride = NFormatUtils::minStride(PSHMINFO, bufSize.x);
m_resource->sendBuffer(NFormatUtils::drmToShm(format), bufSize.x, bufSize.y, stride);