[PATCH] virsh: Fix overflow error of freepages command

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Trying to print pages of a size larger than the UINT_MAX of the
given platform (for example, around 4G on 64-bit intel), a system
error was printed, but this is a legitimate request, fixed.

vshCommandOptScaledInt requiers set maximum returning size for
the variable '&bytes'. It was set as UINT_MAX, while the public
API variable 'kibibytes', which loads the 'bytes' lately, is type
of UINT. Since it's kibibytes, the value in bytes should be 1024*
bigger and it still will works correctly. So the correct max size
of bytes is UINT_MAX * 1024.

Resolves: https://issues.redhat.com/browse/RHEL-23608

Signed-off-by: Adam Julis <ajulis@xxxxxxxxxx>
---
 tools/virsh-host.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/virsh-host.c b/tools/virsh-host.c
index 6c14be865f..5a934d7a7f 100644
--- a/tools/virsh-host.c
+++ b/tools/virsh-host.c
@@ -335,7 +335,7 @@ cmdFreepages(vshControl *ctl, const vshCmd *cmd)
 
     VSH_EXCLUSIVE_OPTIONS_VAR(all, cellno);
 
-    if (vshCommandOptScaledInt(ctl, cmd, "pagesize", &bytes, 1024, UINT_MAX) < 0)
+    if (vshCommandOptScaledInt(ctl, cmd, "pagesize", &bytes, 1024, UINT_MAX * 1024ULL) < 0)
         goto cleanup;
     kibibytes = VIR_DIV_UP(bytes, 1024);
 
-- 
2.43.2
_______________________________________________
Devel mailing list -- devel@xxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxx




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux