diff --git a/Duplicati/Library/Utility/FilterExpression.cs b/Duplicati/Library/Utility/FilterExpression.cs index 7dd46155f..54a7bee3f 100644 --- a/Duplicati/Library/Utility/FilterExpression.cs +++ b/Duplicati/Library/Utility/FilterExpression.cs @@ -351,7 +351,7 @@ namespace Duplicati.Library.Utility /// public string GetFilterHash() { - var hash = MD5HashHelper.GetHash(m_filters.Select(x => x.Filter)); + var hash = MD5HashHelper.GetHash(m_filters?.Select(x => x.Filter)); return Utility.ByteArrayAsHexString(hash); } @@ -587,9 +587,9 @@ namespace Duplicati.Library.Utility /// Second. public static FilterExpression Combine(FilterExpression first, FilterExpression second) { - if (first == null) + if (first == null || first.Empty) return second; - if (second == null) + if (second == null || second.Empty) return first; if (first.Result != second.Result) diff --git a/Duplicati/Library/Utility/MD5HashHelper.cs b/Duplicati/Library/Utility/MD5HashHelper.cs index 97644c6ac..a9fab75f7 100644 --- a/Duplicati/Library/Utility/MD5HashHelper.cs +++ b/Duplicati/Library/Utility/MD5HashHelper.cs @@ -50,10 +50,13 @@ namespace Duplicati.Library.Utility { using (var md5 = MD5.Create()) { - foreach (var str in inputStrings) + if (inputStrings != null) { - var inputBuffer = Encoding.UTF8.GetBytes(str); - md5.TransformBlock(inputBuffer, 0, inputBuffer.Length, inputBuffer, 0); + foreach (var str in inputStrings) + { + var inputBuffer = Encoding.UTF8.GetBytes(str); + md5.TransformBlock(inputBuffer, 0, inputBuffer.Length, inputBuffer, 0); + } } md5.TransformFinalBlock(new byte[0], 0, 0);