aboutsummaryrefslogtreecommitdiff
path: root/infback.c
diff options
context:
space:
mode:
Diffstat (limited to 'infback.c')
-rw-r--r--infback.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/infback.c b/infback.c
index 4c712a1..babeaf1 100644
--- a/infback.c
+++ b/infback.c
@@ -606,25 +606,27 @@ void FAR *out_desc;
606 break; 606 break;
607 607
608 case DONE: 608 case DONE:
609 /* inflate stream terminated properly -- write leftover output */ 609 /* inflate stream terminated properly */
610 ret = Z_STREAM_END; 610 ret = Z_STREAM_END;
611 if (left < state->wsize) {
612 if (out(out_desc, state->window, state->wsize - left))
613 ret = Z_BUF_ERROR;
614 }
615 goto inf_leave; 611 goto inf_leave;
616 612
617 case BAD: 613 case BAD:
618 ret = Z_DATA_ERROR; 614 ret = Z_DATA_ERROR;
619 goto inf_leave; 615 goto inf_leave;
620 616
621 default: /* can't happen, but makes compilers happy */ 617 default:
618 /* can't happen, but makes compilers happy */
622 ret = Z_STREAM_ERROR; 619 ret = Z_STREAM_ERROR;
623 goto inf_leave; 620 goto inf_leave;
624 } 621 }
625 622
626 /* Return unused input */ 623 /* Write leftover output and return unused input */
627 inf_leave: 624 inf_leave:
625 if (left < state->wsize) {
626 if (out(out_desc, state->window, state->wsize - left) &&
627 ret == Z_STREAM_END)
628 ret = Z_BUF_ERROR;
629 }
628 strm->next_in = next; 630 strm->next_in = next;
629 strm->avail_in = have; 631 strm->avail_in = have;
630 return ret; 632 return ret;