Fix issue introduced by 047cfb05ee. Since group_name is str, use STRNEQ
instead of CHECK_EQ to do comparition.
Signed-off-by: Han Han <hhan@redhat.com>
---
src/qemu/qemu_domain.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 86e80391e1..e6d0fbef04 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -9387,9 +9387,14 @@ qemuDomainDiskChangeSupported(virDomainDiskDefPtr disk,
CHECK_EQ(blkdeviotune.size_iops_sec,
"blkdeviotune size_iops_sec",
true);
- CHECK_EQ(blkdeviotune.group_name,
- "blkdeviotune group_name",
- true);
+ if (disk->blkdeviotune.group_name) {
+ if (STRNEQ(disk->blkdeviotune.group_name, orig_disk->blkdeviotune.group_name)) {
+ virReportError(VIR_ERR_OPERATION_UNSUPPORTED,
+ _("cannot modify field '%s' of the disk"),
+ "target");
+ return false;
+ }
+ }
if (disk->serial && STRNEQ_NULLABLE(disk->serial, orig_disk->serial)) {
virReportError(VIR_ERR_OPERATION_UNSUPPORTED,
--
2.20.1
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
On Mon, Mar 18, 2019 at 18:27:05 +0800, Han Han wrote:
> Fix issue introduced by 047cfb05ee. Since group_name is str, use STRNEQ
> instead of CHECK_EQ to do comparition.
>
> Signed-off-by: Han Han <hhan@redhat.com>
> ---
> src/qemu/qemu_domain.c | 11 ++++++++---
> 1 file changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
> index 86e80391e1..e6d0fbef04 100644
> --- a/src/qemu/qemu_domain.c
> +++ b/src/qemu/qemu_domain.c
> @@ -9387,9 +9387,14 @@ qemuDomainDiskChangeSupported(virDomainDiskDefPtr disk,
> CHECK_EQ(blkdeviotune.size_iops_sec,
> "blkdeviotune size_iops_sec",
> true);
> - CHECK_EQ(blkdeviotune.group_name,
> - "blkdeviotune group_name",
> - true);
> + if (disk->blkdeviotune.group_name) {
> + if (STRNEQ(disk->blkdeviotune.group_name, orig_disk->blkdeviotune.group_name)) {
This will crash in case when orig_disk->blkdeviotune.group_name is NULL.
You need to use STRNEQ_NULLABLE. It's also questionable whether we
should do anything if the new value is NULL as we can't reset the group
name, but I think it's okay to assume that it's impossible to delete the
group name at least in context of qemu.
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
On Mon, Mar 18, 2019 at 12:11:17PM +0100, Peter Krempa wrote:
>On Mon, Mar 18, 2019 at 18:27:05 +0800, Han Han wrote:
>> Fix issue introduced by 047cfb05ee. Since group_name is str, use STRNEQ
>> instead of CHECK_EQ to do comparition.
comparison
>>
>> Signed-off-by: Han Han <hhan@redhat.com>
>> ---
>> src/qemu/qemu_domain.c | 11 ++++++++---
>> 1 file changed, 8 insertions(+), 3 deletions(-)
>>
>> diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
>> index 86e80391e1..e6d0fbef04 100644
>> --- a/src/qemu/qemu_domain.c
>> +++ b/src/qemu/qemu_domain.c
>> @@ -9387,9 +9387,14 @@ qemuDomainDiskChangeSupported(virDomainDiskDefPtr disk,
>> CHECK_EQ(blkdeviotune.size_iops_sec,
>> "blkdeviotune size_iops_sec",
>> true);
>> - CHECK_EQ(blkdeviotune.group_name,
>> - "blkdeviotune group_name",
>> - true);
Also, there are many uses of the if (field && STRNEQ_NULLABLE) pattern,
looks like introducing a CHECK_STREQ would reduce the line count.
>> + if (disk->blkdeviotune.group_name) {
>> + if (STRNEQ(disk->blkdeviotune.group_name, orig_disk->blkdeviotune.group_name)) {
>
>This will crash in case when orig_disk->blkdeviotune.group_name is NULL.
>
>You need to use STRNEQ_NULLABLE. It's also questionable whether we
>should do anything if the new value is NULL as we can't reset the group
>name, but I think it's okay to assume that it's impossible to delete the
>group name at least in context of qemu.
It is also impossible to tell whether the user omitted the parameter out of
laziness or they want to remove a particular parameter.
Jano
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
© 2016 - 2026 Red Hat, Inc.