xattr: use checked_mul to increase size

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
This commit is contained in:
Wolfgang Bumiller 2020-04-24 09:58:15 +02:00
parent 00ec8d1685
commit 9af76ef075

View File

@ -22,8 +22,7 @@ pub fn flistxattr(fd: RawFd) -> Result<Vec<u8>, nix::errno::Errno> {
match err {
Errno::ERANGE => {
// Buffer was not big enough to fit the list, retry with double the size
if size * 2 < size { return Err(Errno::ENOMEM); }
size *= 2;
size = size.checked_mul(2).ok_or(Errno::ENOMEM)?;
},
_ => return Err(err),
}
@ -49,8 +48,7 @@ pub fn fgetxattr(fd: RawFd, name: &[u8]) -> Result<Vec<u8>, nix::errno::Errno> {
match err {
Errno::ERANGE => {
// Buffer was not big enough to fit the value, retry with double the size
if size * 2 < size { return Err(Errno::ENOMEM); }
size *= 2;
size = size.checked_mul(2).ok_or(Errno::ENOMEM)?;
},
_ => return Err(err),
}