java-topology/defects/btcpayserver-0002/patch/btcpayserver-0002.patch
russell@unturf.com c2a1fc15cc undf: assign 928-930; btcpayserver CWE-407 scan (3 defects)
btcpayserver-0001: WalletTransactionInfo.Merge Attachments.Any O(A*B) MEDIUM
btcpayserver-0002: AppService gap-fill series.All O(D*S) LOW-MEDIUM
btcpayserver-0003: StringExtensions.IsValidFileName GetInvalidFileNameChars O(F*I) MEDIUM
2026-03-31 09:39:59 -04:00

23 lines
1 KiB
Diff

# UNDF: UNDF-2026-000000929
--- a/BTCPayServer/Services/Apps/AppService.cs
+++ b/BTCPayServer/Services/Apps/AppService.cs
@@ -113,9 +113,12 @@
// fill up the gaps
+ // CWE-407: series.All(e => e.Date != date) inside foreach is O(D*S) where
+ // D = numberOfDays and S = series.Count. Build a HashSet for O(1) lookup.
+ var existingDates = new HashSet<DateTime>(series.Select(e => e.Date));
foreach (var i in Enumerable.Range(0, numberOfDays))
{
var date = (DateTimeOffset.UtcNow - TimeSpan.FromDays(i)).Date;
- if (series.All(e => e.Date != date))
+ if (!existingDates.Contains(date))
{
series.Add(new AppSalesStatsItem
{
Date = date,
Label = date.ToString("MMM dd", CultureInfo.InvariantCulture)
});
+ existingDates.Add(date);
}
}