Add missing error check to coder.c.

With bad luck this could cause a segfault due to
reading (but not writing) past the end of the buffer.
This commit is contained in:
Lasse Collin 2009-11-25 14:22:19 +02:00
parent bd13b04e20
commit 919fbaff86
1 changed files with 11 additions and 9 deletions

View File

@ -617,17 +617,19 @@ coder_run(const char *filename)
strm.next_in = in_buf.u8;
strm.avail_in = io_read(pair, &in_buf, IO_BUFFER_SIZE);
switch (coder_init(pair)) {
case CODER_INIT_NORMAL:
success = coder_normal(pair);
break;
if (strm.avail_in != SIZE_MAX) {
switch (coder_init(pair)) {
case CODER_INIT_NORMAL:
success = coder_normal(pair);
break;
case CODER_INIT_PASSTHRU:
success = coder_passthru(pair);
break;
case CODER_INIT_PASSTHRU:
success = coder_passthru(pair);
break;
case CODER_INIT_ERROR:
break;
case CODER_INIT_ERROR:
break;
}
}
message_progress_end(success);