[libvirt] [PATCH] rng: fix port number range validation

Daniel P. Berrange berrange at redhat.com
Thu Apr 23 11:15:00 UTC 2015

The PortNumber data type is declared to derive from 'short'.
Unfortunately this is an signed type, so validates the range
[-32,768, 32,767] which excludes valid port numbers between
32767 and 65535.

We can't use 'unsignedShort', since we need -1 to be a valid
port number too.

This change is to use 'int' and set an explicit max boundary
instead of relying on the data types' built-in max.

One of the existing tests is changed to use a high port number
to validate the schema.


Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
 docs/schemas/basictypes.rng                                  | 3 ++-
 tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-policy.args | 2 +-
 tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-policy.xml  | 2 +-
 3 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/docs/schemas/basictypes.rng b/docs/schemas/basictypes.rng
index f086ad2..a83063a 100644
--- a/docs/schemas/basictypes.rng
+++ b/docs/schemas/basictypes.rng
@@ -349,8 +349,9 @@
   <define name="PortNumber">
-    <data type="short">
+    <data type="int">
       <param name="minInclusive">-1</param>
+      <param name="maxInclusive">65535</param>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-policy.args b/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-policy.args
index 1b61fcf..34dc767 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-policy.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-policy.args
@@ -1,4 +1,4 @@
 LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \
 /usr/bin/qemu -S -M pc -m 214 -smp 1 -monitor unix:/tmp/test-monitor,server,nowait \
 -no-acpi -boot c -usb -hda /dev/HostVG/QEMUGuest1 \
--net none -serial none -parallel none -vnc,share=allow-exclusive
+-net none -serial none -parallel none -vnc,share=allow-exclusive
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-policy.xml b/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-policy.xml
index f78ff48..4b88e49 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-policy.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-policy.xml
@@ -25,7 +25,7 @@
     <controller type='pci' index='0' model='pci-root'/>
     <input type='mouse' bus='ps2'/>
     <input type='keyboard' bus='ps2'/>
-    <graphics type='vnc' port='5900' autoport='no' listen='' sharePolicy='allow-exclusive'>
+    <graphics type='vnc' port='65530' autoport='no' listen='' sharePolicy='allow-exclusive'>
       <listen type='address' address=''/>

More information about the libvir-list mailing list