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.
This commit is contained in:
Denis Kenzior 2010-01-28 14:31:22 -06:00
parent 2e4bcbf0ac
commit fb918d39ba
1 changed files with 2 additions and 4 deletions

View File

@ -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;