Skip to content

Commit

Permalink
Have infback() deliver all of the available output up to any error.
Browse files Browse the repository at this point in the history
  • Loading branch information
Mark Adler committed Jul 24, 2022
1 parent 2333419 commit b8bd098
Showing 1 changed file with 9 additions and 7 deletions.
16 changes: 9 additions & 7 deletions infback.c
Original file line number Diff line number Diff line change
Expand Up @@ -606,25 +606,27 @@ void FAR *out_desc;
break;

case DONE:
/* inflate stream terminated properly -- write leftover output */
/* inflate stream terminated properly */
ret = Z_STREAM_END;
if (left < state->wsize) {
if (out(out_desc, state->window, state->wsize - left))
ret = Z_BUF_ERROR;
}
goto inf_leave;

case BAD:
ret = Z_DATA_ERROR;
goto inf_leave;

default: /* can't happen, but makes compilers happy */
default:
/* can't happen, but makes compilers happy */
ret = Z_STREAM_ERROR;
goto inf_leave;
}

/* Return unused input */
/* Write leftover output and return unused input */
inf_leave:
if (left < state->wsize) {
if (out(out_desc, state->window, state->wsize - left) &&
ret == Z_STREAM_END)
ret = Z_BUF_ERROR;
}
strm->next_in = next;
strm->avail_in = have;
return ret;
Expand Down

0 comments on commit b8bd098

Please sign in to comment.