diff options
author | Chunyan Liu <cyliu@suse.com> | 2014-06-18 10:47:26 +0800 |
---|---|---|
committer | Stefan Hajnoczi <stefanha@redhat.com> | 2014-06-21 16:40:14 +0800 |
commit | 435db4cf29b88b6612e30acda01cd18788dff458 (patch) | |
tree | 536e75ea408b35289c00d6b30f4b4bcd8716e46c | |
parent | 999e5aa5cec71d7138c4b5271092f59ca85f9f6b (diff) |
QemuOpts: check NULL opts in qemu_opt_get functions
Some places will call bdrv_create_file(filename, NULL, &local_err), where
opts is NULL. Check NULL in qemu_opt_get and qemu_opt_get_*_del functions,
to avoid extra effort of checking opts before calling them every time.
Signed-off-by: Chunyan Liu <cyliu@suse.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
-rw-r--r-- | util/qemu-option.c | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/util/qemu-option.c b/util/qemu-option.c index 836055a4d2..43de3add29 100644 --- a/util/qemu-option.c +++ b/util/qemu-option.c @@ -310,8 +310,13 @@ static void qemu_opt_del_all(QemuOpts *opts, const char *name) const char *qemu_opt_get(QemuOpts *opts, const char *name) { - QemuOpt *opt = qemu_opt_find(opts, name); + QemuOpt *opt; + if (opts == NULL) { + return NULL; + } + + opt = qemu_opt_find(opts, name); if (!opt) { const QemuOptDesc *desc = find_desc_by_name(opts->list->desc, name); if (desc && desc->def_value_str) { @@ -364,9 +369,14 @@ bool qemu_opt_has_help_opt(QemuOpts *opts) static bool qemu_opt_get_bool_helper(QemuOpts *opts, const char *name, bool defval, bool del) { - QemuOpt *opt = qemu_opt_find(opts, name); + QemuOpt *opt; bool ret = defval; + if (opts == NULL) { + return ret; + } + + opt = qemu_opt_find(opts, name); if (opt == NULL) { const QemuOptDesc *desc = find_desc_by_name(opts->list->desc, name); if (desc && desc->def_value_str) { @@ -395,9 +405,14 @@ bool qemu_opt_get_bool_del(QemuOpts *opts, const char *name, bool defval) static uint64_t qemu_opt_get_number_helper(QemuOpts *opts, const char *name, uint64_t defval, bool del) { - QemuOpt *opt = qemu_opt_find(opts, name); + QemuOpt *opt; uint64_t ret = defval; + if (opts == NULL) { + return ret; + } + + opt = qemu_opt_find(opts, name); if (opt == NULL) { const QemuOptDesc *desc = find_desc_by_name(opts->list->desc, name); if (desc && desc->def_value_str) { @@ -427,9 +442,14 @@ uint64_t qemu_opt_get_number_del(QemuOpts *opts, const char *name, static uint64_t qemu_opt_get_size_helper(QemuOpts *opts, const char *name, uint64_t defval, bool del) { - QemuOpt *opt = qemu_opt_find(opts, name); + QemuOpt *opt; uint64_t ret = defval; + if (opts == NULL) { + return ret; + } + + opt = qemu_opt_find(opts, name); if (opt == NULL) { const QemuOptDesc *desc = find_desc_by_name(opts->list->desc, name); if (desc && desc->def_value_str) { |