[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 6/6] qemu-ga: Handle errors uniformely in ga_cha
From: |
mdroth |
Subject: |
Re: [Qemu-devel] [PATCH 6/6] qemu-ga: Handle errors uniformely in ga_channel_open() |
Date: |
Fri, 11 Jan 2013 11:47:40 -0600 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Fri, Jan 11, 2013 at 11:25:02AM +0100, Markus Armbruster wrote:
> We detect errors in seven places. One reports with g_error(), which
Do you mean "in several places"? I can fix this in tree.
> calls abort(), the others report with g_critical(). Three of them
> exit(), three return false.
>
> Always report with g_critical(), and return false.
>
> Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Michael Roth <address@hidden>
> ---
> qga/channel-posix.c | 11 +++++++----
> 1 file changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/qga/channel-posix.c b/qga/channel-posix.c
> index b530808..96274f5 100644
> --- a/qga/channel-posix.c
> +++ b/qga/channel-posix.c
> @@ -140,14 +140,15 @@ static gboolean ga_channel_open(GAChannel *c, const
> gchar *path, GAChannelMethod
> );
> if (fd == -1) {
> g_critical("error opening channel: %s", strerror(errno));
> - exit(EXIT_FAILURE);
> + return false;
> }
> #ifdef CONFIG_SOLARIS
> ret = ioctl(fd, I_SETSIG, S_OUTPUT | S_INPUT | S_HIPRI);
> if (ret == -1) {
> g_critical("error setting event mask for channel: %s",
> strerror(errno));
> - exit(EXIT_FAILURE);
> + close(fd);
> + return false;
> }
> #endif
> ret = ga_channel_client_add(c, fd);
> @@ -163,7 +164,7 @@ static gboolean ga_channel_open(GAChannel *c, const gchar
> *path, GAChannelMethod
> int fd = qemu_open(path, O_RDWR | O_NOCTTY | O_NONBLOCK);
> if (fd == -1) {
> g_critical("error opening channel: %s", strerror(errno));
> - exit(EXIT_FAILURE);
> + return false;
> }
> tcgetattr(fd, &tio);
> /* set up serial port for non-canonical, dumb byte streaming */
> @@ -183,7 +184,9 @@ static gboolean ga_channel_open(GAChannel *c, const gchar
> *path, GAChannelMethod
> tcsetattr(fd, TCSANOW, &tio);
> ret = ga_channel_client_add(c, fd);
> if (ret) {
> - g_error("error adding channel to main loop");
> + g_critical("error adding channel to main loop");
> + close(fd);
> + return false;
> }
> break;
> }
> --
> 1.7.11.7
>
- Re: [Qemu-devel] [PATCH 2/6] qemu-ga: Drop pointless lseek() from ga_open_pidfile(), (continued)
- [Qemu-devel] [PATCH 3/6] qemu-ga: Plug file descriptor leak on ga_open_pidfile() error path, Markus Armbruster, 2013/01/11
- [Qemu-devel] [PATCH 1/6] qemu-ga: Document intentional fall through in channel_event_cb(), Markus Armbruster, 2013/01/11
- [Qemu-devel] [PATCH 5/6] qemu-ga: Plug fd leak on ga_channel_open() error paths, Markus Armbruster, 2013/01/11
- [Qemu-devel] [PATCH 4/6] qemu-ga: Plug fd leak on ga_channel_listen_accept() error path, Markus Armbruster, 2013/01/11
- [Qemu-devel] [PATCH 6/6] qemu-ga: Handle errors uniformely in ga_channel_open(), Markus Armbruster, 2013/01/11
- Re: [Qemu-devel] [PATCH 6/6] qemu-ga: Handle errors uniformely in ga_channel_open(),
mdroth <=
- Re: [Qemu-devel] [PATCH 0/6] Simple qemu-ga fixes and cleanups, Eric Blake, 2013/01/11
- Re: [Qemu-devel] [PATCH 0/6] Simple qemu-ga fixes and cleanups, Luiz Capitulino, 2013/01/14
- Re: [Qemu-devel] [PATCH 0/6] Simple qemu-ga fixes and cleanups, mdroth, 2013/01/14