On 10/31/2016 06:43 AM, Martin Kletzander wrote:
On Fri, Oct 28, 2016 at 04:29:30AM -0700, Michal Privoznik wrote:
> On 27.10.2016 17:45, Chen Hanxiao wrote:
>> From: Chen Hanxiao <chenhanxiao(a)gmail.com>
>>
>> If we failed to unlink old dom cfg file, we goto rollback.
>> But inside rollback, we fogot to unlink the new dom cfg file.
>> This patch fixes this issue.
>>
>> Signed-off-by: Chen Hanxiao <chenhanxiao(a)gmail.com>
>> ---
>> src/qemu/qemu_driver.c | 11 +++++++++++
>> 1 file changed, 11 insertions(+)
>>
>> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
>> index e6f845d..3f4a2fb 100644
>> --- a/src/qemu/qemu_driver.c
>> +++ b/src/qemu/qemu_driver.c
>> @@ -19882,6 +19883,11 @@ qemuDomainRenameCallback(virDomainObjPtr vm,
>> goto cleanup;
>> }
>>
>> + if (!(new_dom_cfg_file = virDomainConfigFile(cfg->configDir,
>> + new_dom_name))) {
>> + goto cleanup;
>> + }
>> +
>
> Whoa, I'm really surprised that our syntax-check does not catch this. It
> has a one line body therefore there shouldn't be any curly braces around
> it. Also, this could be joined with previous condition.
>
Actually! =D We have that so "precisely defined" that in this precise
case, it "is optional (not enforced either way)" -- Just to note how
specific we can be =)
It used to be undefined, but according to
http://libvirt.org/hacking.html#curly_braces (a change made in in 2014
in commit a9d07d33 by Martin), when the condition spans multiple lines,
curly braces are now required:
"Omit the curly braces around an if, while, for etc. body only when
both that body *and the condition itself* occupy a single line."
One of the examples following that text is of exactly this situation.
(I've always preferred doing it this way, but have been lazy about it a
few times and had it pointed out during review by "The Crusader of the
Braces", abologna)