From: Harsh Prateek Bora Date: Mon, 18 Oct 2010 10:06:36 +0000 (+0530) Subject: [virtio-9p] Qemu 9p commandline options validity checks X-Git-Tag: v0.14.0-rc0~553 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=9f506893a454ce24263aba49594aa953e9a52853;p=qemu.git [virtio-9p] Qemu 9p commandline options validity checks Signed-off-by: Harsh Prateek Bora Signed-off-by: Venkateswararao Jujjuri --- diff --git a/fsdev/qemu-fsdev.c b/fsdev/qemu-fsdev.c index 280b8f57b..0b332907b 100644 --- a/fsdev/qemu-fsdev.c +++ b/fsdev/qemu-fsdev.c @@ -29,35 +29,47 @@ int qemu_fsdev_add(QemuOpts *opts) { struct FsTypeListEntry *fsle; int i; + const char *fsdev_id = qemu_opts_id(opts); + const char *fstype = qemu_opt_get(opts, "fstype"); + const char *path = qemu_opt_get(opts, "path"); + const char *sec_model = qemu_opt_get(opts, "security_model"); - if (qemu_opts_id(opts) == NULL) { + if (!fsdev_id) { fprintf(stderr, "fsdev: No id specified\n"); return -1; } - for (i = 0; i < ARRAY_SIZE(FsTypes); i++) { - if (strcmp(FsTypes[i].name, qemu_opt_get(opts, "fstype")) == 0) { - break; + if (fstype) { + for (i = 0; i < ARRAY_SIZE(FsTypes); i++) { + if (strcmp(FsTypes[i].name, fstype) == 0) { + break; + } } - } - if (i == ARRAY_SIZE(FsTypes)) { - fprintf(stderr, "fsdev: fstype %s not found\n", - qemu_opt_get(opts, "fstype")); + if (i == ARRAY_SIZE(FsTypes)) { + fprintf(stderr, "fsdev: fstype %s not found\n", fstype); + return -1; + } + } else { + fprintf(stderr, "fsdev: No fstype specified\n"); return -1; } - if (qemu_opt_get(opts, "security_model") == NULL) { + if (!sec_model) { fprintf(stderr, "fsdev: No security_model specified.\n"); return -1; } + if (!path) { + fprintf(stderr, "fsdev: No path specified.\n"); + return -1; + } + fsle = qemu_malloc(sizeof(*fsle)); - fsle->fse.fsdev_id = qemu_strdup(qemu_opts_id(opts)); - fsle->fse.path = qemu_strdup(qemu_opt_get(opts, "path")); - fsle->fse.security_model = qemu_strdup(qemu_opt_get(opts, - "security_model")); + fsle->fse.fsdev_id = qemu_strdup(fsdev_id); + fsle->fse.path = qemu_strdup(path); + fsle->fse.security_model = qemu_strdup(sec_model); fsle->fse.ops = FsTypes[i].ops; QTAILQ_INSERT_TAIL(&fstype_entries, fsle, next); @@ -67,11 +79,13 @@ int qemu_fsdev_add(QemuOpts *opts) FsTypeEntry *get_fsdev_fsentry(char *id) { - struct FsTypeListEntry *fsle; + if (id) { + struct FsTypeListEntry *fsle; - QTAILQ_FOREACH(fsle, &fstype_entries, next) { - if (strcmp(fsle->fse.fsdev_id, id) == 0) { - return &fsle->fse; + QTAILQ_FOREACH(fsle, &fstype_entries, next) { + if (strcmp(fsle->fse.fsdev_id, id) == 0) { + return &fsle->fse; + } } } return NULL; diff --git a/hw/virtio-9p.c b/hw/virtio-9p.c index 4586ccefb..867fcfa09 100644 --- a/hw/virtio-9p.c +++ b/hw/virtio-9p.c @@ -3697,8 +3697,8 @@ VirtIODevice *virtio_9p_init(DeviceState *dev, V9fsConf *conf) if (!fse) { /* We don't have a fsdev identified by fsdev_id */ - fprintf(stderr, "Virtio-9p device couldn't find fsdev " - "with the id %s\n", conf->fsdev_id); + fprintf(stderr, "Virtio-9p device couldn't find fsdev with the " + "id = %s\n", conf->fsdev_id ? conf->fsdev_id : "NULL"); exit(1); }