[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] Fix error handling in qemu_read_config_file
From: |
Kevin Wolf |
Subject: |
[Qemu-devel] [PATCH] Fix error handling in qemu_read_config_file |
Date: |
Mon, 17 May 2010 10:36:47 +0200 |
We need to close the file even in error case. While at it, make the callers
catch all kind of errors. ENOENT is allowed for default config files, they
are optional.
Reported-by: Luiz Capitulino <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>
---
qemu-config.c | 12 ++++++++----
vl.c | 4 ++--
2 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/qemu-config.c b/qemu-config.c
index bf3d493..b2a4128 100644
--- a/qemu-config.c
+++ b/qemu-config.c
@@ -521,14 +521,18 @@ out:
int qemu_read_config_file(const char *filename)
{
FILE *f = fopen(filename, "r");
+ int ret;
+
if (f == NULL) {
return -errno;
}
- if (qemu_config_parse(f, vm_config_groups, filename) != 0) {
- return -EINVAL;
- }
+ ret = qemu_config_parse(f, vm_config_groups, filename);
fclose(f);
- return 0;
+ if (ret == 0) {
+ return 0;
+ } else {
+ return -EINVAL;
+ }
}
diff --git a/vl.c b/vl.c
index c8abce6..4ca1bee 100644
--- a/vl.c
+++ b/vl.c
@@ -2683,12 +2683,12 @@ int main(int argc, char **argv, char **envp)
int ret;
ret = qemu_read_config_file(CONFIG_QEMU_CONFDIR "/qemu.conf");
- if (ret == -EINVAL) {
+ if (ret < 0 && ret != -ENOENT) {
exit(1);
}
ret = qemu_read_config_file(arch_config_name);
- if (ret == -EINVAL) {
+ if (ret < 0 && ret != -ENOENT) {
exit(1);
}
}
--
1.6.6.1
- [Qemu-devel] [PATCH] Fix error handling in qemu_read_config_file,
Kevin Wolf <=