All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rohit Kumar <rohit.kumar3@nutanix.com>
To: qemu-devel@nongnu.org
Cc: prachatos.mitra@nutanix.com,
	Rohit Kumar <rohit.kumar3@nutanix.com>,
	prerna.saxena@nutanix.com
Subject: [PATCH v1] Check and report for incomplete 'global' option format
Date: Tue,  4 Jan 2022 08:41:02 -0500	[thread overview]
Message-ID: <20220104134102.1080890-1-rohit.kumar3@nutanix.com> (raw)

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)

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/604
Signed-off-by: Rohit Kumar <rohit.kumar3@nutanix.com>
---
 softmmu/qdev-monitor.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/softmmu/qdev-monitor.c b/softmmu/qdev-monitor.c
index 01f3834db5..7aee7b9882 100644
--- a/softmmu/qdev-monitor.c
+++ b/softmmu/qdev-monitor.c
@@ -1020,6 +1020,7 @@ int qemu_global_option(const char *str)
     char driver[64], property[64];
     QemuOpts *opts;
     int rc, offset;
+    Error *err = NULL;
 
     rc = sscanf(str, "%63[^.=].%63[^=]%n", driver, property, &offset);
     if (rc == 2 && str[offset] == '=') {
@@ -1031,7 +1032,13 @@ int qemu_global_option(const char *str)
     }
 
     opts = qemu_opts_parse_noisily(&qemu_global_opts, str, false);
-    if (!opts) {
+    if (!opts || !qemu_opt_get(opts, "driver") || !qemu_opt_get(opts, "property") ||
+        !qemu_opt_get(opts, "value")) {
+        error_setg(&err, "Invalid 'global' option format\n"
+                   "Expected: -global <driver>.<property>=<value> or "
+                   "-global driver=driver,property=property,value=value\n"
+                   "Received: -global %s", str);
+        error_report_err(err);
         return -1;
     }
 
-- 
2.27.0



             reply	other threads:[~2022-01-04 13:43 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-04 13:41 Rohit Kumar [this message]
2022-01-04 13:52 ` [PATCH v1] Check and report for incomplete 'global' option format Philippe Mathieu-Daudé
2022-01-10  9:46   ` Rohit Kumar
2022-01-24 14:59 ` Rohit Kumar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220104134102.1080890-1-rohit.kumar3@nutanix.com \
    --to=rohit.kumar3@nutanix.com \
    --cc=prachatos.mitra@nutanix.com \
    --cc=prerna.saxena@nutanix.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.