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
23 lines
1 KiB
Diff
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);
|
|
}
|
|
}
|