[libvirt] [PATCH] virPortAllocatorSetUsed: ignore port 0

Cole Robinson crobinso at redhat.com
Thu Jan 24 22:38:47 UTC 2019


On 01/21/2019 10:00 AM, Ján Tomko wrote:
> 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 at redhat.com>
> ---
>  src/util/virportallocator.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/src/util/virportallocator.c b/src/util/virportallocator.c
> index db95a601c7..d48963c1ff 100644
> --- a/src/util/virportallocator.c
> +++ b/src/util/virportallocator.c
> @@ -294,6 +294,9 @@ virPortAllocatorSetUsed(unsigned short port)
>      if (!pa)
>          return -1;
>  
> +    if (!port)
> +        return 0;
> +
>      virObjectLock(pa);
>  
>      if (virBitmapIsBitSet(pa->bitmap, port) ||
> 

Reviewed-by: Cole Robinson <crobinso at redhat.com>

There's a portallocator unit test file but no direct tests for this
function unfortunately

- Cole




More information about the libvir-list mailing list