From: Nick Terrell Date: Fri, 5 Jan 2018 19:49:55 +0000 (-0800) Subject: [fileio] Don't call FIO_remove() on stdout or /dev/null X-Git-Tag: v1.3.4~1^2~92^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F974%2Fhead;p=thirdparty%2Fzstd.git [fileio] Don't call FIO_remove() on stdout or /dev/null --- diff --git a/programs/fileio.c b/programs/fileio.c index 71b87d4d5..887cbeb37 100644 --- a/programs/fileio.c +++ b/programs/fileio.c @@ -901,10 +901,10 @@ static int FIO_compressFilename_dstFile(cRess_t ress, DISPLAYLEVEL(1, "zstd: %s: %s \n", dstFileName, strerror(errno)); result=1; } - if (result!=0) { /* remove operation artefact */ - if (FIO_remove(dstFileName)) - EXM_THROW(1, "zstd: %s: %s", dstFileName, strerror(errno)); - } + if ( (result != 0) /* operation failure */ + && strcmp(dstFileName, nulmark) /* special case : don't remove() /dev/null */ + && strcmp(dstFileName, stdoutmark) ) /* special case : don't remove() stdout */ + FIO_remove(dstFileName); /* remove compression artefact; note don't do anything special if remove() fails */ else if ( strcmp(dstFileName, stdoutmark) && strcmp(dstFileName, nulmark) && stat_result)