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

Chris Lalancette clalance at redhat.com
Tue Mar 31 15:29:09 UTC 2009


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.

-- 
Chris Lalancette




More information about the libvir-list mailing list