From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44601) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WGnSm-0005c0-Ok for qemu-devel@nongnu.org; Fri, 21 Feb 2014 05:36:18 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WGnSg-0001Vy-Mz for qemu-devel@nongnu.org; Fri, 21 Feb 2014 05:36:12 -0500 Received: from victor.provo.novell.com ([137.65.250.26]:54843) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WGnSg-0001Vo-EG for qemu-devel@nongnu.org; Fri, 21 Feb 2014 05:36:06 -0500 From: Chunyan Liu Date: Fri, 21 Feb 2014 18:35:27 +0800 Message-Id: <1392978948-27416-5-git-send-email-cyliu@suse.com> In-Reply-To: <1392978948-27416-1-git-send-email-cyliu@suse.com> References: <1392978948-27416-1-git-send-email-cyliu@suse.com> Subject: [Qemu-devel] [PATCH v21 04/25] improve assertion in qemu_opt_get functions List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kwolf@redhat.com, Chunyan Liu , stefanha@redhat.com In qemu_opt_set functions, if desc doen't exist but opts_accepts_any is true, it won't report error, but can still alloc an opt for the option and save it. However, after that, when doing qemu_opt_get, this option could be found in opts but opt->desc is NULL. This is correct, should not be treated as error. This patch would fix vvfat issue after changing to QemuOpts. Signed-off-by: Chunyan Liu --- changes to v20: * fix Eric's comments: - checking opt->desc instead of removing the assertion util/qemu-option.c | 12 +++++++++--- 1 files changed, 9 insertions(+), 3 deletions(-) diff --git a/util/qemu-option.c b/util/qemu-option.c index b2d1a62..11c0313 100644 --- a/util/qemu-option.c +++ b/util/qemu-option.c @@ -554,7 +554,9 @@ bool qemu_opt_get_bool(QemuOpts *opts, const char *name, bool defval) } return defval; } - assert(opt->desc && opt->desc->type == QEMU_OPT_BOOL); + if (opt->desc) { + assert(opt->desc->type == QEMU_OPT_BOOL); + } return opt->value.boolean; } @@ -576,7 +578,9 @@ uint64_t qemu_opt_get_number(QemuOpts *opts, const char *name, uint64_t defval) } return defval; } - assert(opt->desc && opt->desc->type == QEMU_OPT_NUMBER); + if (opt->desc) { + assert(opt->desc->type == QEMU_OPT_NUMBER); + } return opt->value.uint; } @@ -596,7 +600,9 @@ uint64_t qemu_opt_get_size(QemuOpts *opts, const char *name, uint64_t defval) } return defval; } - assert(opt->desc && opt->desc->type == QEMU_OPT_SIZE); + if (opt->desc) { + assert(opt->desc->type == QEMU_OPT_SIZE); + } return opt->value.uint; } -- 1.6.0.2