[libvirt] [PATCH] util: fix handling of unspecified port in URI

Erik Skultety eskultet at redhat.com
Tue Nov 13 11:50:06 UTC 2018


On Tue, Nov 13, 2018 at 11:36:57AM +0000, Daniel P. Berrangé wrote:
> When no server name is provided in the URI, modern versions of libxml2
> will set the port to '-1'. This is a change from behaviour with earlier
> versions which set it to 0.
>
> Libvirt expects the port to be 0 in these cases and as a result we get a
> bug when connecting to URIs which lack a server name:
>
> $ virsh  -c test+ssh:///default list
> error: failed to connect to the hypervisor
> error: Cannot recv data: Bad port '-1': Connection reset by peer
>
> This libxml2 change was attempting to fix another bug identified by
> libvirt where it didn't roundtrip URIs correctly in:
>
>   https://github.com/GNOME/libxml2/commit/beb7281055dbf0ed4d041022a67c6c5cfd126f25
>
> Essentially libxml2 was not expecting apps to look at the URI port
> field when the server name is not provided. This was a reasonable
> assumption, but none the less libvirt did look at it :-)
>
> The fix is to ensure we explicitly set port to 0 when server name
> is not present, avoiding undefined behaviour for the port field in
> libxml2.
>
> Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
> ---
Reviewed-by: Erik Skultety <eskultet at redhat.com>




More information about the libvir-list mailing list