summaryrefslogtreecommitdiff
path: root/src/protocols/Screencopy.cpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2023-04-08 13:35:36 +0100
committervaxerski <43317083+vaxerski@users.noreply.github.com>2023-04-08 13:35:36 +0100
commit31963f823b12d79727c98ab51bd64f96cc0433e0 (patch)
tree2472eae6c78fce8169672e845931cac49931348f /src/protocols/Screencopy.cpp
parent3ce19e67fe60321c1af845dd30925e193cd96440 (diff)
screencopy: fix crash in invalid format reads
Diffstat (limited to 'src/protocols/Screencopy.cpp')
-rw-r--r--src/protocols/Screencopy.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/protocols/Screencopy.cpp b/src/protocols/Screencopy.cpp
index 07422023..a697abc9 100644
--- a/src/protocols/Screencopy.cpp
+++ b/src/protocols/Screencopy.cpp
@@ -379,6 +379,7 @@ bool CScreencopyProtocolManager::copyFrameShm(SScreencopyFrame* frame, timespec*
const auto PFORMAT = get_gles2_format_from_drm(format);
if (!PFORMAT) {
Debug::log(ERR, "[screencopy] Cannot read pixels, unsupported format %x", PFORMAT);
+ wlr_output_rollback(PMONITOR->output);
pixman_region32_fini(&fakeDamage);
wlr_buffer_end_data_ptr_access(frame->buffer);
return false;