1
0
Fork 0
forked from wry/wry

shm: limit data accessed by ClientMemOffset

This commit is contained in:
Julian Orth 2026-02-27 20:06:22 +01:00
parent 3f70242d32
commit 518095c7c2
7 changed files with 24 additions and 28 deletions

View file

@ -58,18 +58,13 @@ impl ZwpVirtualKeyboardV1RequestHandler for ZwpVirtualKeyboardV1 {
if req.size > MAX_SIZE {
return Err(ZwpVirtualKeyboardV1Error::OversizedKeymap);
}
let client_mem = ClientMem::new_private(
&req.fd,
req.size as usize - 1,
true,
Some(&self.client),
None,
)
.map(Rc::new)
.map_err(ZwpVirtualKeyboardV1Error::MapKeymap)?;
let size = req.size as usize - 1;
let client_mem = ClientMem::new_private(&req.fd, size, true, Some(&self.client), None)
.map(Rc::new)
.map_err(ZwpVirtualKeyboardV1Error::MapKeymap)?;
let mut map = vec![];
client_mem
.offset(0)
.offset(0, size)
.read(&mut map)
.map_err(ZwpVirtualKeyboardV1Error::ReadKeymap)?;
let map = self