qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH] Fix null pointer dereference when parsing chardevs


From: Mike McCormack
Subject: [Qemu-devel] [PATCH] Fix null pointer dereference when parsing chardevs without a backend option.
Date: Tue, 29 Jun 2010 17:50:20 +0900
User-agent: Thunderbird 2.0.0.23 (X11/20090817)


qemu_opt_get may return NULL, so handle that rather than crashing.

Signed-off-by: Mike McCormack <address@hidden>
---
qemu-char.c |    9 ++++++++-
1 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/qemu-char.c b/qemu-char.c
index 9b69d92..f292ee7 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -2434,6 +2434,7 @@ CharDriverState *qemu_chr_open_opts(QemuOpts *opts,
                                    void (*init)(struct CharDriverState *s))
{
    CharDriverState *chr;
+    const char *backend;
    int i;

    if (qemu_opts_id(opts) == NULL) {
@@ -2441,8 +2442,14 @@ CharDriverState *qemu_chr_open_opts(QemuOpts *opts,
        return NULL;
    }

+    backend = qemu_opt_get(opts, "backend");
+    if (!backend) {
+        fprintf(stderr, "chardev: backend option not specified\n");
+        return NULL;
+    }
+
    for (i = 0; i < ARRAY_SIZE(backend_table); i++) {
-        if (strcmp(backend_table[i].name, qemu_opt_get(opts, "backend")) == 0)
+        if (strcmp(backend_table[i].name, backend) == 0)
            break;
    }
    if (i == ARRAY_SIZE(backend_table)) {
--
1.5.4.3



reply via email to

[Prev in Thread] Current Thread [Next in Thread]