From 53a90c00c300ab94ad8d19a1ad6658dcc565dd92 Mon Sep 17 00:00:00 2001 From: Pavan Kumar VH Date: Thu, 3 Sep 2026 12:02:51 +0530 Subject: [PATCH] Fix NaN/Infinity handling in responseAdDisplayCount The function used Math.floor() without checking if the input was a valid number. If params.eligibleCount or params.poolSize was NaN or Infinity, Math.floor() would return NaN, and Math.max(0, NaN) would return NaN, causing incorrect results. Added Number.isFinite() checks to default to 0 for invalid numbers. --- common/src/util/lazy-response-ads.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/common/src/util/lazy-response-ads.ts b/common/src/util/lazy-response-ads.ts index 1b491a44d8..2214f85dea 100644 --- a/common/src/util/lazy-response-ads.ts +++ b/common/src/util/lazy-response-ads.ts @@ -16,8 +16,10 @@ export function responseAdDisplayCount(params: { eligibleCount: number poolSize: number }): number { - const eligibleCount = Math.max(0, Math.floor(params.eligibleCount)) - const poolSize = Math.max(0, Math.floor(params.poolSize)) + const safeEligibleCount = Number.isFinite(params.eligibleCount) ? params.eligibleCount : 0 + const safePoolSize = Number.isFinite(params.poolSize) ? params.poolSize : 0 + const eligibleCount = Math.max(0, Math.floor(safeEligibleCount)) + const poolSize = Math.max(0, Math.floor(safePoolSize)) return poolSize >= MAX_RESPONSE_AD_POOL_SIZE ? eligibleCount : Math.min(eligibleCount, poolSize)