summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNick Terrell <terrelln@fb.com>2018-01-05 19:27:24 (GMT)
committerNick Terrell <terrelln@fb.com>2018-01-05 19:27:24 (GMT)
commit9474b706a511882c96c17306c02130b6718f2a09 (patch)
tree6c303a48c56a41c1293b261e2cf8d8e7aaac7210
parent506ae9c3331133ea63705461d2d09eebfaf3235c (diff)
downloadlz4-9474b706a511882c96c17306c02130b6718f2a09.zip
lz4-9474b706a511882c96c17306c02130b6718f2a09.tar.gz
lz4-9474b706a511882c96c17306c02130b6718f2a09.tar.bz2
[lz4io] Fix decompression file stat with --rm
-rw-r--r--programs/lz4io.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/programs/lz4io.c b/programs/lz4io.c
index 9bf4e93..2cf0c1c 100644
--- a/programs/lz4io.c
+++ b/programs/lz4io.c
@@ -1073,23 +1073,27 @@ static int LZ4IO_decompressSrcFile(dRess_t ress, const char* input_filename, con
static int LZ4IO_decompressDstFile(dRess_t ress, const char* input_filename, const char* output_filename)
{
+ stat_t statbuf;
+ int stat_result = 0;
FILE* const foutput = LZ4IO_openDstFile(output_filename);
if (foutput==NULL) return 1; /* failure */
+ if ( strcmp(input_filename, stdinmark)
+ && UTIL_getFileStat(input_filename, &statbuf))
+ stat_result = 1;
+
ress.dstFile = foutput;
LZ4IO_decompressSrcFile(ress, input_filename, output_filename);
fclose(foutput);
/* Copy owner, file permissions and modification time */
- { stat_t statbuf;
- if ( strcmp (input_filename, stdinmark)
- && strcmp (output_filename, stdoutmark)
- && strcmp (output_filename, nulmark)
- && UTIL_getFileStat(input_filename, &statbuf) ) {
- UTIL_setFileStat(output_filename, &statbuf);
- /* should return value be read ? or is silent fail good enough ? */
- } }
+ if ( stat_result != 0
+ && strcmp (output_filename, stdoutmark)
+ && strcmp (output_filename, nulmark)) {
+ UTIL_setFileStat(output_filename, &statbuf);
+ /* should return value be read ? or is silent fail good enough ? */
+ }
return 0;
}