From fb918d39ba275cdd3270160f18a1fc43f29dcea6 Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Thu, 28 Jan 2010 14:31:22 -0600 Subject: [PATCH] Fix: Take care of uninitialized variable condition In some (impossible) circumstances rbytes and err might be used uninitialized. Here we make a check that a read was actually attempted before checking those variables. --- gatchat/gatchat.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/gatchat/gatchat.c b/gatchat/gatchat.c index 336a423..f60f857 100644 --- a/gatchat/gatchat.c +++ b/gatchat/gatchat.c @@ -704,10 +704,8 @@ static gboolean received_data(GIOChannel *channel, GIOCondition cond, do { toread = ring_buffer_avail_no_wrap(chat->buf); - if (toread == 0) { - err = G_IO_ERROR_NONE; + if (toread == 0) break; - } rbytes = 0; buf = ring_buffer_write_ptr(chat->buf); @@ -732,7 +730,7 @@ static gboolean received_data(GIOChannel *channel, GIOCondition cond, if (cond & (G_IO_HUP | G_IO_ERR)) return FALSE; - if (rbytes == 0 && err != G_IO_ERROR_AGAIN) + if (read_count > 0 && rbytes == 0 && err != G_IO_ERROR_AGAIN) return FALSE; return TRUE; -- 2.7.4