* [Qemu-devel] [PATCH] Fix error handling in qemu_read_config_file
@ 2010-05-17 8:36 Kevin Wolf
2010-05-24 20:30 ` Anthony Liguori
0 siblings, 1 reply; 2+ messages in thread
From: Kevin Wolf @ 2010-05-17 8:36 UTC (permalink / raw)
To: qemu-devel; +Cc: kwolf, lcapitulino
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 <lcapitulino@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
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
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [Qemu-devel] [PATCH] Fix error handling in qemu_read_config_file
2010-05-17 8:36 [Qemu-devel] [PATCH] Fix error handling in qemu_read_config_file Kevin Wolf
@ 2010-05-24 20:30 ` Anthony Liguori
0 siblings, 0 replies; 2+ messages in thread
From: Anthony Liguori @ 2010-05-24 20:30 UTC (permalink / raw)
To: Kevin Wolf; +Cc: qemu-devel, lcapitulino
On 05/17/2010 03:36 AM, Kevin Wolf wrote:
> 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<lcapitulino@redhat.com>
> Signed-off-by: Kevin Wolf<kwolf@redhat.com>
>
Applied. Thanks.
Regards,
Anthony Liguori
> ---
> 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);
> }
> }
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2010-05-24 20:30 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-05-17 8:36 [Qemu-devel] [PATCH] Fix error handling in qemu_read_config_file Kevin Wolf
2010-05-24 20:30 ` Anthony Liguori
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).