diff options
Diffstat (limited to 'gzlib.c')
-rw-r--r-- | gzlib.c | 19 |
1 files changed, 10 insertions, 9 deletions
@@ -147,6 +147,14 @@ local gzFile gz_open(path, fd, mode) | |||
147 | return NULL; | 147 | return NULL; |
148 | } | 148 | } |
149 | 149 | ||
150 | /* save the path name for error messages */ | ||
151 | state->path = malloc(strlen(path) + 1); | ||
152 | if (state->path == NULL) { | ||
153 | free(state); | ||
154 | return NULL; | ||
155 | } | ||
156 | strcpy(state->path, path); | ||
157 | |||
150 | /* open the file with the appropriate mode (or just use fd) */ | 158 | /* open the file with the appropriate mode (or just use fd) */ |
151 | state->fd = fd != -1 ? fd : | 159 | state->fd = fd != -1 ? fd : |
152 | open(path, | 160 | open(path, |
@@ -170,14 +178,6 @@ local gzFile gz_open(path, fd, mode) | |||
170 | if (state->mode == GZ_APPEND) | 178 | if (state->mode == GZ_APPEND) |
171 | state->mode = GZ_WRITE; /* simplify later checks */ | 179 | state->mode = GZ_WRITE; /* simplify later checks */ |
172 | 180 | ||
173 | /* save the path name for error messages */ | ||
174 | state->path = malloc(strlen(path) + 1); | ||
175 | if (state->path == NULL) { | ||
176 | free(state); | ||
177 | return NULL; | ||
178 | } | ||
179 | strcpy(state->path, path); | ||
180 | |||
181 | /* save the current position for rewinding (only if reading) */ | 181 | /* save the current position for rewinding (only if reading) */ |
182 | if (state->mode == GZ_READ) { | 182 | if (state->mode == GZ_READ) { |
183 | state->start = LSEEK(state->fd, 0, SEEK_CUR); | 183 | state->start = LSEEK(state->fd, 0, SEEK_CUR); |
@@ -450,7 +450,8 @@ const char * ZEXPORT gzerror(file, errnum) | |||
450 | return NULL; | 450 | return NULL; |
451 | 451 | ||
452 | /* return error information */ | 452 | /* return error information */ |
453 | *errnum = state->err; | 453 | if (errnum != NULL) |
454 | *errnum = state->err; | ||
454 | return state->msg == NULL ? "" : state->msg; | 455 | return state->msg == NULL ? "" : state->msg; |
455 | } | 456 | } |
456 | 457 | ||