From 27ece0efa66223d46ed18e578c4f6f3ebc13cdb3 Mon Sep 17 00:00:00 2001 From: John Andrews Date: Mon, 28 Mar 2022 11:30:21 +1300 Subject: [PATCH] fixing issue with int overflow in filesize compare --- BasicNodes/File/FileSize.cs | 4 ++-- BasicNodes/Tests/FileSizeTests.cs | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/BasicNodes/File/FileSize.cs b/BasicNodes/File/FileSize.cs index d8d81733..ce6a746b 100644 --- a/BasicNodes/File/FileSize.cs +++ b/BasicNodes/File/FileSize.cs @@ -31,9 +31,9 @@ namespace FileFlows.BasicNodes.File public int TestSize(NodeParameters args, long size) { - if (size < (Lower * 1024 * 1024)) + if (size < (((long)Lower) * 1024 * 1024)) return 2; - if (Upper > 0 && size > (Upper * 1024 * 1024)) + if (Upper > 0 && size > (((long)Upper) * 1024 * 1024)) return 2; return 1; } diff --git a/BasicNodes/Tests/FileSizeTests.cs b/BasicNodes/Tests/FileSizeTests.cs index 0abb7ca8..13d95e37 100644 --- a/BasicNodes/Tests/FileSizeTests.cs +++ b/BasicNodes/Tests/FileSizeTests.cs @@ -51,6 +51,21 @@ namespace BasicNodes.Tests var result = pm.TestSize(Args, 5 * 1024 * 1024); Assert.AreEqual(1, result); } + + [TestMethod] + public void FileSize_25GB() + { + FileSize pm = new FileSize(); + pm.Upper = 25600; + long fileSize = 2240000000; // 2.24GB + var result = pm.TestSize(Args, fileSize); + Assert.AreEqual(1, result); + + pm.Upper = 25600; + fileSize = 224000000000; // 2.24GB + result = pm.TestSize(Args, fileSize); + Assert.AreEqual(2, result); + } } }