[libvirt] question about qemudDomainMigratePrepare2 of qemu_driver.c from libvirt-0.6.1

Daniel Veillard veillard at redhat.com
Tue Mar 31 21:36:51 UTC 2009


On Tue, Mar 31, 2009 at 05:29:09PM +0200, Chris Lalancette wrote:
> Daniel P. Berrange wrote:
> > On Tue, Mar 31, 2009 at 10:07:31AM +0200, Gerrit.Slomma at drv-bund.de wrote:
> >> Hello
> >>
> >> I am just curious if the checking of the connection string in qemu_driver.c
> >> from libvirt-0.6.1 in qemudDomainMigratePrepare2 is faulty.
> >> The source is:
> >>
> >> [...]
> >>     } else {
> >>         /* Check the URI starts with "tcp:".  We will escape the
> >>          * URI when passing it to the qemu monitor, so bad
> >>          * characters in hostname part don't matter.
> >>          */
> >>         if (!STREQLEN (uri_in, "tcp:", 6)) {
> >>             qemudReportError (dconn, NULL, NULL, VIR_ERR_INVALID_ARG,
> >>                   "%s", _("only tcp URIs are supported for KVM
> >> migrations"));
> >>             goto cleanup;
> >>         }
> >> [...]
> >>
> >> The second compare-string "tcp:" is only 4 characters long, therefore a
> >> check via strncmp must fail i presumed, i isolated this comparison:
> > 
> > Can you try with this patch applied
> > 
> > diff -r b5ad7b1c453b src/qemu_driver.c
> > --- a/src/qemu_driver.c	Tue Mar 31 14:55:23 2009 +0100
> > +++ b/src/qemu_driver.c	Tue Mar 31 15:02:30 2009 +0100
> > @@ -4629,7 +4629,7 @@ qemudDomainMigratePrepare2 (virConnectPt
> >           * URI when passing it to the qemu monitor, so bad
> >           * characters in hostname part don't matter.
> >           */
> > -        if (!STREQLEN (uri_in, "tcp:", 6)) {
> > +        if (!STRPREFIX (uri_in, "tcp:")) {
> >              qemudReportError (dconn, NULL, NULL, VIR_ERR_INVALID_ARG,
> >                    "%s", _("only tcp URIs are supported for KVM migrations"));
> >              goto cleanup;
> 
> Yeah, that's the way to fix this.  The STREQLEN(uri_in, "tcp:", 6) is a leftover
> from the KVM migration to QEMU migration implementation; in the KVM migration,
> you would use "tcp://", which would be the correct 6 characters, but in the QEMU
> migration implementation, you just use "tcp:".  I guess I just forgot to fix
> this up.

  ACK, Dan can you apply this too ?

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list