diff options
Diffstat (limited to 'vl.c')
| -rw-r--r-- | vl.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/vl.c b/vl.c index b87c15d71a..6a65a64bfd 100644 --- a/vl.c +++ b/vl.c @@ -2208,10 +2208,12 @@ static int device_init_func(void *opaque, QemuOpts *opts, Error **errp) DeviceState *dev; dev = qdev_device_add(opts, errp); - if (!dev) { + if (!dev && *errp) { + error_report_err(*errp); return -1; + } else if (dev) { + object_unref(OBJECT(dev)); } - object_unref(OBJECT(dev)); return 0; } @@ -3232,7 +3234,8 @@ int main(int argc, char **argv, char **envp) if (*p == 'x') { p++; depth = strtol(p, (char **)&p, 10); - if (depth != 8 && depth != 15 && depth != 16 && + if (depth != 1 && depth != 2 && depth != 4 && + depth != 8 && depth != 15 && depth != 16 && depth != 24 && depth != 32) goto graphic_error; } else if (*p == '\0') { |