diff options
Diffstat (limited to 'gzread.c')
-rw-r--r-- | gzread.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -553,7 +553,7 @@ int ZEXPORT gzdirect(file) | |||
553 | int ZEXPORT gzclose_r(file) | 553 | int ZEXPORT gzclose_r(file) |
554 | gzFile file; | 554 | gzFile file; |
555 | { | 555 | { |
556 | int ret; | 556 | int ret, err; |
557 | gz_statep state; | 557 | gz_statep state; |
558 | 558 | ||
559 | /* get internal structure */ | 559 | /* get internal structure */ |
@@ -571,9 +571,10 @@ int ZEXPORT gzclose_r(file) | |||
571 | free(state->out); | 571 | free(state->out); |
572 | free(state->in); | 572 | free(state->in); |
573 | } | 573 | } |
574 | err = state->err == Z_BUF_ERROR ? Z_BUF_ERROR : Z_OK; | ||
574 | gz_error(state, Z_OK, NULL); | 575 | gz_error(state, Z_OK, NULL); |
575 | free(state->path); | 576 | free(state->path); |
576 | ret = close(state->fd); | 577 | ret = close(state->fd); |
577 | free(state); | 578 | free(state); |
578 | return ret ? Z_ERRNO : Z_OK; | 579 | return ret ? Z_ERRNO : err; |
579 | } | 580 | } |