From 02434e0867695db62ade7a94852dfeae1b630e75 Mon Sep 17 00:00:00 2001 From: Yann Collet Date: Wed, 25 Jan 2023 16:18:20 -0800 Subject: [PATCH] enforce a hard fail when input files are set to be erased in scenarios where it's supposed to not be possible. suggested by @terrelln --- programs/fileio.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/programs/fileio.c b/programs/fileio.c index abc90b659..fb71804d6 100644 --- a/programs/fileio.c +++ b/programs/fileio.c @@ -840,9 +840,21 @@ static void FIO_adjustMemLimitForPatchFromMode(FIO_prefs_t* const prefs, */ static int FIO_multiFilesConcatWarning(const FIO_ctx_t* fCtx, FIO_prefs_t* prefs, const char* outFileName, int displayLevelCutoff) { - if (fCtx->hasStdoutOutput) assert(prefs->removeSrcFile == 0); + if (fCtx->hasStdoutOutput) { + if (prefs->removeSrcFile) + /* this should not happen ; hard fail, to protect user's data + * note: this should rather be an assert(), but we want to be certain that user's data will not be wiped out in case it nonetheless happen */ + EXM_THROW(43, "It's not allowed to remove input files when processed output is piped to stdout. " + "This scenario is not supposed to be possible. " + "This is a programming error. File an issue for it to be fixed."); + } if (prefs->testMode) { - assert(prefs->removeSrcFile == 0); + if (prefs->removeSrcFile) + /* this should not happen ; hard fail, to protect user's data + * note: this should rather be an assert(), but we want to be certain that user's data will not be wiped out in case it nonetheless happen */ + EXM_THROW(43, "Test mode shall not remove input files! " + "This scenario is not supposed to be possible. " + "This is a programming error. File an issue for it to be fixed."); return 0; } -- 2.47.2