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);