aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-03-28 07:47:57 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2024-03-28 07:47:57 +0400
commita7b38192142440c59a4e793cf5de99b9a7f1c2c3 (patch)
tree45052269612d0347da31a2ca0f0a50383293c8ca
parent1eff5aeb7521b56840ec1918b1134f126014d564 (diff)
downloadniri-a7b38192142440c59a4e793cf5de99b9a7f1c2c3.tar.gz
niri-a7b38192142440c59a4e793cf5de99b9a7f1c2c3.tar.bz2
niri-a7b38192142440c59a4e793cf5de99b9a7f1c2c3.zip
tty: Add check for zero gamma size
-rw-r--r--src/backend/tty.rs2
-rw-r--r--src/handlers/mod.rs1
2 files changed, 3 insertions, 0 deletions
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<u32> {
match self.backend.tty().get_gamma_size(output) {
+ Ok(0) => None, // Setting gamma is not supported.
Ok(size) => Some(size),
Err(err) => {
warn!(