From a7b38192142440c59a4e793cf5de99b9a7f1c2c3 Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Thu, 28 Mar 2024 07:47:57 +0400 Subject: tty: Add check for zero gamma size --- src/backend/tty.rs | 2 ++ src/handlers/mod.rs | 1 + 2 files changed, 3 insertions(+) diff --git a/src/backend/tty.rs b/src/backend/tty.rs index 783db022..54dce718 100644 --- a/src/backend/tty.rs +++ b/src/backend/tty.rs @@ -2074,6 +2074,8 @@ pub fn set_gamma_for_crtc( let info = device.get_crtc(crtc).context("error getting crtc info")?; let gamma_length = info.gamma_length() as usize; + ensure!(gamma_length != 0, "setting gamma is not supported"); + let mut temp; let ramp = if let Some(ramp) = ramp { ensure!(ramp.len() == gamma_length * 3, "wrong gamma length"); diff --git a/src/handlers/mod.rs b/src/handlers/mod.rs index 46ee79b6..24e386b4 100644 --- a/src/handlers/mod.rs +++ b/src/handlers/mod.rs @@ -448,6 +448,7 @@ impl GammaControlHandler for State { fn get_gamma_size(&mut self, output: &Output) -> Option { match self.backend.tty().get_gamma_size(output) { + Ok(0) => None, // Setting gamma is not supported. Ok(size) => Some(size), Err(err) => { warn!( -- cgit