From: Mike Gilbert Date: Thu, 13 Jan 2022 21:47:18 +0000 (-0500) Subject: Avoid updating timestamps when the destination is stdout X-Git-Tag: v1.5.2^2~2^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=57a86d9ec636c75f17a3005962ff178545e404f5;p=thirdparty%2Fzstd.git Avoid updating timestamps when the destination is stdout Fixes: 9cd6c1ff4d56fc74a2cbdfd9bcc82a64e0fe4bb7 Fixes: https://github.com/facebook/zstd/issues/2997 --- diff --git a/programs/fileio.c b/programs/fileio.c index 89eecb9e7..5338fa629 100644 --- a/programs/fileio.c +++ b/programs/fileio.c @@ -1679,6 +1679,7 @@ static int FIO_compressFilename_dstFile(FIO_ctx_t* const fCtx, if (ress.dstFile == NULL) { int dstFilePermissions = DEFAULT_FILE_PERMISSIONS; if ( strcmp (srcFileName, stdinmark) + && strcmp (dstFileName, stdoutmark) && UTIL_stat(srcFileName, &statbuf) && UTIL_isRegularFileStat(&statbuf) ) { dstFilePermissions = statbuf.st_mode; @@ -2634,6 +2635,7 @@ static int FIO_decompressDstFile(FIO_ctx_t* const fCtx, if ((ress.dstFile == NULL) && (prefs->testMode==0)) { int dstFilePermissions = DEFAULT_FILE_PERMISSIONS; if ( strcmp(srcFileName, stdinmark) /* special case : don't transfer permissions from stdin */ + && strcmp(dstFileName, stdoutmark) && UTIL_stat(srcFileName, &statbuf) && UTIL_isRegularFileStat(&statbuf) ) { dstFilePermissions = statbuf.st_mode;