[pve-devel] [PATCH v2 qemu-server] vm status: force int where appropriate

Fabian Ebner f.ebner at proxmox.com
Tue Jun 1 08:43:06 CEST 2021


to avoid potential problems with stringified numbers in Javascript and
elsewehere.

The vmid was not always an integer as the return schema expects, namely
when there was an opt_vmid argument, because the 'ne' comparision coerced the
vmid to be a string then.

Signed-off-by: Fabian Ebner <f.ebner at proxmox.com>
---

Changes from v1:
    * also make vmid an integer.

 PVE/QemuServer.pm | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index 25ac052..830a6e4 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -2651,8 +2651,8 @@ sub vmstatus {
 
 	my $conf = PVE::QemuConfig->load_config($vmid);
 
-	my $d = { vmid => $vmid };
-	$d->{pid} = $list->{$vmid}->{pid};
+	my $d = { vmid => int($vmid) };
+	$d->{pid} = int($list->{$vmid}->{pid});
 
 	# fixme: better status?
 	$d->{status} = $list->{$vmid}->{pid} ? 'running' : 'stopped';
@@ -2711,8 +2711,8 @@ sub vmstatus {
 	$d->{netin} += $netdev->{$dev}->{transmit};
 
 	if ($full) {
-	    $d->{nics}->{$dev}->{netout} = $netdev->{$dev}->{receive};
-	    $d->{nics}->{$dev}->{netin} = $netdev->{$dev}->{transmit};
+	    $d->{nics}->{$dev}->{netout} = int($netdev->{$dev}->{receive});
+	    $d->{nics}->{$dev}->{netin} = int($netdev->{$dev}->{transmit});
 	}
 
     }
-- 
2.30.2






More information about the pve-devel mailing list