[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] Introduce 9p commandline arguments sanity checks
From: |
Harsh Prateek Bora |
Subject: |
[Qemu-devel] [PATCH] Introduce 9p commandline arguments sanity checks |
Date: |
Tue, 12 Oct 2010 10:58:50 +0530 |
This patch checks the validity of 9p related commandline
arguments and throws error if the arguments are not appropriate.
Signed-off-by: Harsh Prateek Bora <address@hidden>
---
fsdev/qemu-fsdev.c | 39 ++++++++++++++++++++++++++-------------
hw/virtio-9p.c | 2 +-
2 files changed, 27 insertions(+), 14 deletions(-)
diff --git a/fsdev/qemu-fsdev.c b/fsdev/qemu-fsdev.c
index 280b8f5..3f4c543 100644
--- a/fsdev/qemu-fsdev.c
+++ b/fsdev/qemu-fsdev.c
@@ -29,35 +29,48 @@ 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);
diff --git a/hw/virtio-9p.c b/hw/virtio-9p.c
index 60f0802..0df56d7 100644
--- a/hw/virtio-9p.c
+++ b/hw/virtio-9p.c
@@ -3697,7 +3697,7 @@ 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);
+ "with the id = %s\n", conf->fsdev_id ? conf->fsdev_id :
"unknown");
exit(1);
}
--
1.7.1.1
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-devel] [PATCH] Introduce 9p commandline arguments sanity checks,
Harsh Prateek Bora <=