[libvirt] [PATCH v3] qemu: avoid slash characters to the new domain name.

John Ferlan jferlan at redhat.com
Mon Apr 30 22:19:45 UTC 2018



On 04/30/2018 02:28 PM, Julio Faracco wrote:
> Hi John,
> 
> Thanks for your comments.
> Probably, this is a requirement for test driver too.
> See my tests:
> 
>     # virsh -c test:///default
> 
>     virsh # shutdown test
>     Domain test is being shutdown
> 
>     virsh # domrename test /
>     Domain successfully renamed
> 
>     virsh # start /
>     error: Failed to start domain /
>     error: XML error: name / cannot contain '/'
> 
> The same behavior of QEMU driver.
> 

ah true - so post a v4 where patch 1 is the qemu patch and patch 2 is
the test patch... We have another day or so of waiting for the release
anyway...

Tks,

John

> --
> Julio Cesar Faracco
> 
> 2018-04-30 10:23 GMT-03:00 John Ferlan <jferlan at redhat.com>:
>>
>>
>> On 04/23/2018 09:26 PM, Julio Faracco wrote:
>>> The 'domrename' command needs to check if the new domain name contains
>>> the slash character. This character is not accepted by libvirt XML
>>> definition because it is an invalid char (see Cole's commit b1fc6a7b7).
>>> This commit enhace the 'domrename' command adding this check.
>>>
>>> Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1333232
>>>
>>> Signed-off-by: Julio Faracco <jcfaracco at gmail.com>
>>> ---
>>>  src/qemu/qemu_driver.c | 6 ++++++
>>>  1 file changed, 6 insertions(+)
>>>
>>
>> The change/check could have gone right after virCheckFlags and used
>> @new_name (we're already guaranteed @new_name is not NULL from the
>> virDomainRename API) and just return -1 directly.
>>
>> Reviewed-by: John Ferlan <jferlan at redhat.com>
>>
>> John
>>
>> I will push after the freeze.  If you'd like I can also move the check.
>>
>>> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
>>> index 7484b00e2..70ae18524 100644
>>> --- a/src/qemu/qemu_driver.c
>>> +++ b/src/qemu/qemu_driver.c
>>> @@ -20757,6 +20757,12 @@ qemuDomainRenameCallback(virDomainObjPtr vm,
>>>      if (VIR_STRDUP(new_dom_name, new_name) < 0)
>>>          goto cleanup;
>>>
>>> +    if (strchr(new_dom_name, '/')) {
>>> +        virReportError(VIR_ERR_XML_ERROR,
>>> +                       _("name %s cannot contain '/'"), new_dom_name);
>>> +        goto cleanup;
>>> +    }
>>> +
>>>      if (!(new_dom_cfg_file = virDomainConfigFile(cfg->configDir,
>>>                                                   new_dom_name)) ||
>>>          !(old_dom_cfg_file = virDomainConfigFile(cfg->configDir,
>>>




More information about the libvir-list mailing list