From 968a1a097a9244d78f3f585addef0c521e109f90 Mon Sep 17 00:00:00 2001 From: rootkiller6788 Date: Fri, 21 Aug 2026 14:43:25 +0800 Subject: [PATCH] fix(fileio): guard ratio progress display against divide-by-zero on empty input --- programs/fileio.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/programs/fileio.c b/programs/fileio.c index 78a906d53..6c01048c6 100644 --- a/programs/fileio.c +++ b/programs/fileio.c @@ -1541,12 +1541,12 @@ FIO_compressGzFrame(cRess_t* ress, DISPLAYUPDATE_PROGRESS( "\rRead : %u MB ==> %.2f%% ", (unsigned)(inFileSize>>20), - (double)outFileSize/(double)inFileSize*100) + inFileSize ? (double)outFileSize/(double)inFileSize*100 : 0) } else { DISPLAYUPDATE_PROGRESS( "\rRead : %u / %u MB ==> %.2f%% ", (unsigned)(inFileSize>>20), (unsigned)(srcFileSize>>20), - (double)outFileSize/(double)inFileSize*100); + inFileSize ? (double)outFileSize/(double)inFileSize*100 : 0); } } while (1) { @@ -1635,11 +1635,11 @@ FIO_compressLzmaFrame(cRess_t* ress, if (srcFileSize == UTIL_FILESIZE_UNKNOWN) DISPLAYUPDATE_PROGRESS("\rRead : %u MB ==> %.2f%%", (unsigned)(inFileSize>>20), - (double)outFileSize/(double)inFileSize*100) + inFileSize ? (double)outFileSize/(double)inFileSize*100 : 0) else DISPLAYUPDATE_PROGRESS("\rRead : %u / %u MB ==> %.2f%%", (unsigned)(inFileSize>>20), (unsigned)(srcFileSize>>20), - (double)outFileSize/(double)inFileSize*100); + inFileSize ? (double)outFileSize/(double)inFileSize*100 : 0); if (ret == LZMA_STREAM_END) break; } @@ -1718,11 +1718,11 @@ FIO_compressLz4Frame(cRess_t* ress, if (srcFileSize == UTIL_FILESIZE_UNKNOWN) { DISPLAYUPDATE_PROGRESS("\rRead : %u MB ==> %.2f%%", (unsigned)(inFileSize>>20), - (double)outFileSize/(double)inFileSize*100) + inFileSize ? (double)outFileSize/(double)inFileSize*100 : 0) } else { DISPLAYUPDATE_PROGRESS("\rRead : %u / %u MB ==> %.2f%%", (unsigned)(inFileSize>>20), (unsigned)(srcFileSize>>20), - (double)outFileSize/(double)inFileSize*100); + inFileSize ? (double)outFileSize/(double)inFileSize*100 : 0); } FIO_SyncCompressIO_commitOut(syncIO, syncIO->outBuffer, outSize);