On 11/12/2010 09:22 AM, Daniel P. Berrange wrote: > The "find-storage-pool-sources-as" command takes two arguments, > a hostname and a port number. For some reason the code would > also then look for a port number appended to the hostname > string by searching for ':'. This totally breaks if the user > gives an IPv6 address, and is redundant, since you can already > provide a port as a separate argument > > * tools/virsh.c: Remove bogus port number handling code > --- > tools/virsh.c | 11 ++--------- > 1 files changed, 2 insertions(+), 9 deletions(-) > > diff --git a/tools/virsh.c b/tools/virsh.c > index 69a42e8..a840758 100644 > --- a/tools/virsh.c > +++ b/tools/virsh.c > @@ -5772,15 +5772,8 @@ cmdPoolDiscoverSourcesAs(vshControl * ctl, const vshCmd * cmd ATTRIBUTE_UNUSED) > if (host) { > size_t hostlen = strlen(host); > char *port = vshCommandOptString(cmd, "port", &found); > - if (!found) { > - port = strrchr(host, ':'); > - if (port) { > - if (*(++port)) > - hostlen = port - host - 1; > - else > - port = NULL; > - } > - } > + if (!found) > + port = NULL; Slight change which may break existing scripts that used an undocumented method, but makes sense given that the documentation calls out both arguments, and in light of IPv6 hostnames. > virBuffer buf = VIR_BUFFER_INITIALIZER; > virBufferAddLit(&buf, "<source>\n"); > virBufferVSprintf(&buf, " <host name='%.*s'",(int)hostlen, host); However, given that we are no longer computing hostlen as anything other than strlen(host), I would recommend that you respin this patch to completely get rid of hostlen, and use %s instead of %.*s. -- Eric Blake eblake@xxxxxxxxxx +1-801-349-2682 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list