]> xenbits.xensource.com Git - libvirt.git/commitdiff
virPortAllocatorSetUsed: ignore port 0
authorJán Tomko <jtomko@redhat.com>
Mon, 21 Jan 2019 14:49:23 +0000 (15:49 +0100)
committerJán Tomko <jtomko@redhat.com>
Fri, 25 Jan 2019 13:50:05 +0000 (14:50 +0100)
Similar to what commit 86dba8f3 did for virPortAllocatorRelease,
ignore port 0 in virPortAllocatorSetUsed.

For all the reasonable use cases the callers already check that
the port is non-zero, however if the port from the XML overflows
unsigned short and turns into 0, it can be set as used by
virPortAllocatorSetUsed but not released by virPortAllocatorRelease.

Also skip port '0' in virPortAllocatorSetUsed to make this behavior
symmetric.

The serenity was disturbed by commit 5dbda5e9 which started using
virPortAllocatorRelease instead of virPortAllocatorSetUsed (false).

https://bugzilla.redhat.com/show_bug.cgi?id=1591645

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Cole Robinson <crobinso@redhat.com>
src/util/virportallocator.c

index db95a601c7d4e455dab0122257157698c92c09d6..d48963c1ff9744f0bbc73213c837d9c7627d9939 100644 (file)
@@ -294,6 +294,9 @@ virPortAllocatorSetUsed(unsigned short port)
     if (!pa)
         return -1;
 
+    if (!port)
+        return 0;
+
     virObjectLock(pa);
 
     if (virBitmapIsBitSet(pa->bitmap, port) ||