diff options
author | Denis Kenzior <denkenz@gmail.com> | 2010-01-28 14:31:22 -0600 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-01-28 14:38:59 -0600 |
commit | fb918d39ba275cdd3270160f18a1fc43f29dcea6 (patch) | |
tree | daf61cc837be86970baf32e7d7bf4f9de1cc2fe0 /gatchat/gatchat.c | |
parent | 2e4bcbf0ac777c0c199440ef62e58054b2fbfc3e (diff) | |
download | ofono-fb918d39ba275cdd3270160f18a1fc43f29dcea6.tar.bz2 |
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.
Diffstat (limited to 'gatchat/gatchat.c')
-rw-r--r-- | gatchat/gatchat.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/gatchat/gatchat.c b/gatchat/gatchat.c index 336a4238..f60f857a 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; |