shm: limit data accessed by ClientMemOffset
This commit is contained in:
parent
3f70242d32
commit
518095c7c2
7 changed files with 24 additions and 28 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue