diff mbox series

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

Message ID 20220216071508.412974-1-rohit.kumar3@nutanix.com
State New
Headers show
Series [v3] Check and report for incomplete 'global' option format | expand

Commit Message

Rohit Kumar Feb. 16, 2022, 7:15 a.m. UTC
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(+)

Comments

Markus Armbruster Feb. 16, 2022, 1:55 p.m. UTC | #1
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>
Rohit Kumar March 2, 2022, 8:42 a.m. UTC | #2
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>
>
Markus Armbruster March 2, 2022, 9:37 a.m. UTC | #3
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?
diff mbox series

Patch

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;
 }