diff options
| author | Vaxry <vaxry@vaxry.net> | 2026-03-01 15:31:22 +0000 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2026-03-01 15:31:22 +0000 |
| commit | 8ad96a95d62b16d5c9a141ad5a37b51388a68aef (patch) | |
| tree | 4dd0e133e76e1ad0d6a33d7e4e32ac00e13b52de /src/protocols/Screencopy.cpp | |
| parent | f41e3c220366c4432cbef04c7d7a3f28a5d702b4 (diff) | |
screencopy: fix nullptr deref if shm format is weird
Diffstat (limited to 'src/protocols/Screencopy.cpp')
| -rw-r--r-- | src/protocols/Screencopy.cpp | 7 |
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); |
