Don't delete outfile unconditionally.
MFC after: 1 month
This commit is contained in:
parent
480f8d152d
commit
66e8cfde23
@ -1429,6 +1429,7 @@ file_uncompress(char *file, char *outfile, size_t outsize)
|
||||
unsigned char header1[4];
|
||||
enum filetype method;
|
||||
int fd, ofd, zfd = -1;
|
||||
int err;
|
||||
size_t in_size;
|
||||
#ifndef SMALL
|
||||
ssize_t rv;
|
||||
@ -1601,14 +1602,21 @@ file_uncompress(char *file, char *outfile, size_t outsize)
|
||||
|
||||
size = zuncompress(in, out, NULL, 0, NULL);
|
||||
/* need to fclose() if ferror() is true... */
|
||||
if (ferror(in) | fclose(in)) {
|
||||
maybe_warn("failed infile fclose");
|
||||
unlink(outfile);
|
||||
err = ferror(in);
|
||||
if (err | fclose(in)) {
|
||||
if (err)
|
||||
maybe_warn("failed infile");
|
||||
else
|
||||
maybe_warn("failed infile fclose");
|
||||
if (cflag == 0)
|
||||
unlink(outfile);
|
||||
(void)fclose(out);
|
||||
goto lose;
|
||||
}
|
||||
if (fclose(out) != 0) {
|
||||
maybe_warn("failed outfile fclose");
|
||||
unlink(outfile);
|
||||
if (cflag == 0)
|
||||
unlink(outfile);
|
||||
goto lose;
|
||||
}
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user