[PATCH v3] Check and report for incomplete 'global' option format

Rohit Kumar posted 1 patch 2 years, 2 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20220216071508.412974-1-rohit.kumar3@nutanix.com
Maintainers: "Daniel P. Berrangé" <berrange@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>, Eduardo Habkost <eduardo@habkost.net>
softmmu/qdev-monitor.c | 7 +++++++
1 file changed, 7 insertions(+)
[PATCH v3] Check and report for incomplete 'global' option format
Posted by Rohit Kumar 2 years, 2 months ago
Qemu might crash when provided incomplete '-global' option.
For example:
     qemu-system-x86_64 -global driver=isa-fdc
     qemu-system-x86_64: ../../devel/qemu/qapi/string-input-visitor.c:394:
     string_input_visitor_new: Assertion `str' failed.
     Aborted (core dumped)

Fixes: 3751d7c43f795b ("vl: allow full-blown QemuOpts syntax for -global")
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/604
Signed-off-by: Rohit Kumar <rohit.kumar3@nutanix.com>
---
 diff to v2:
  - Avoided double reporting of error.
  - Added the "Fixes" line in the commit message.

 softmmu/qdev-monitor.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/softmmu/qdev-monitor.c b/softmmu/qdev-monitor.c
index 01f3834db5..e918ab8bf3 100644
--- a/softmmu/qdev-monitor.c
+++ b/softmmu/qdev-monitor.c
@@ -1034,6 +1034,13 @@ int qemu_global_option(const char *str)
     if (!opts) {
         return -1;
     }
+    if (!qemu_opt_get(opts, "driver")
+        || !qemu_opt_get(opts, "property")
+        || !qemu_opt_get(opts, "value")) {
+        error_report("options 'driver', 'property', and 'value'"
+                     " are required");
+        return -1;
+    }
 
     return 0;
 }
-- 
2.25.1


Re: [PATCH v3] Check and report for incomplete 'global' option format
Posted by Markus Armbruster 2 years, 2 months ago
Rohit Kumar <rohit.kumar3@nutanix.com> writes:

> Qemu might crash when provided incomplete '-global' option.
> For example:
>      qemu-system-x86_64 -global driver=isa-fdc
>      qemu-system-x86_64: ../../devel/qemu/qapi/string-input-visitor.c:394:
>      string_input_visitor_new: Assertion `str' failed.
>      Aborted (core dumped)
>
> Fixes: 3751d7c43f795b ("vl: allow full-blown QemuOpts syntax for -global")
> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/604
> Signed-off-by: Rohit Kumar <rohit.kumar3@nutanix.com>
> ---
>  diff to v2:
>   - Avoided double reporting of error.
>   - Added the "Fixes" line in the commit message.
>
>  softmmu/qdev-monitor.c | 7 +++++++
>  1 file changed, 7 insertions(+)
>
> diff --git a/softmmu/qdev-monitor.c b/softmmu/qdev-monitor.c
> index 01f3834db5..e918ab8bf3 100644
> --- a/softmmu/qdev-monitor.c
> +++ b/softmmu/qdev-monitor.c
> @@ -1034,6 +1034,13 @@ int qemu_global_option(const char *str)
>      if (!opts) {
>          return -1;
>      }
> +    if (!qemu_opt_get(opts, "driver")
> +        || !qemu_opt_get(opts, "property")
> +        || !qemu_opt_get(opts, "value")) {
> +        error_report("options 'driver', 'property', and 'value'"
> +                     " are required");
> +        return -1;
> +    }
>  
>      return 0;
>  }

Reviewed-by: Markus Armbruster <armbru@redhat.com>


Re: [PATCH v3] Check and report for incomplete 'global' option format
Posted by Rohit Kumar 2 years, 2 months ago
Hi Markus, thanks for the review. Please let me know if this patch needs 
to be rebased on top of current master or does it looks good to merge.
Thanks !

On 16/02/22 7:25 pm, Markus Armbruster wrote:
> Rohit Kumar <rohit.kumar3@nutanix.com> writes:
>
>> Qemu might crash when provided incomplete '-global' option.
>> For example:
>>       qemu-system-x86_64 -global driver=isa-fdc
>>       qemu-system-x86_64: ../../devel/qemu/qapi/string-input-visitor.c:394:
>>       string_input_visitor_new: Assertion `str' failed.
>>       Aborted (core dumped)
>>
>> Fixes: 3751d7c43f795b ("vl: allow full-blown QemuOpts syntax for -global")
>> Resolves: https://urldefense.proofpoint.com/v2/url?u=https-3A__gitlab.com_qemu-2Dproject_qemu_-2D_issues_604&d=DwIBAg&c=s883GpUCOChKOHiocYtGcg&r=ABSkr7gy7ZTfApFfI-Xxt1gZNtsDDiXoXOXc0OrkyFs&m=_FT9FHpCayLV7VOqTV1sshekKFR0H-be14Rx8GwuhkF6FyEaMtUWc0vvbuoZOJP1&s=yH_2KUONf-QJFFyoSnAGOJIzyhREMalkQuli_BY-y4U&e=
>> Signed-off-by: Rohit Kumar <rohit.kumar3@nutanix.com>
>> ---
>>   diff to v2:
>>    - Avoided double reporting of error.
>>    - Added the "Fixes" line in the commit message.
>>
>>   softmmu/qdev-monitor.c | 7 +++++++
>>   1 file changed, 7 insertions(+)
>>
>> diff --git a/softmmu/qdev-monitor.c b/softmmu/qdev-monitor.c
>> index 01f3834db5..e918ab8bf3 100644
>> --- a/softmmu/qdev-monitor.c
>> +++ b/softmmu/qdev-monitor.c
>> @@ -1034,6 +1034,13 @@ int qemu_global_option(const char *str)
>>       if (!opts) {
>>           return -1;
>>       }
>> +    if (!qemu_opt_get(opts, "driver")
>> +        || !qemu_opt_get(opts, "property")
>> +        || !qemu_opt_get(opts, "value")) {
>> +        error_report("options 'driver', 'property', and 'value'"
>> +                     " are required");
>> +        return -1;
>> +    }
>>   
>>       return 0;
>>   }
> Reviewed-by: Markus Armbruster <armbru@redhat.com>
>
Re: [PATCH v3] Check and report for incomplete 'global' option format
Posted by Markus Armbruster 2 years, 2 months ago
Rohit Kumar <rohit.kumar3@nutanix.com> writes:

> Hi Markus, thanks for the review. Please let me know if this patch
> needs to be rebased on top of current master or does it looks good to
> merge.
> Thanks !

Paolo, can you take care of this one?