From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qt1-f179.google.com (mail-qt1-f179.google.com [209.85.160.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9999F175A7E for ; Tue, 9 Jun 2026 00:55:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.179 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780966517; cv=none; b=pIazfiwteZdETwyT3+q0JPvYjdJllgYhAOa2gLN7oe2JJayGM6cjBZaxtyX/khP0dp07+9S3X5qptD4q44B8XFs86Ec3DdBz6AU2XZhDba8BWuFR7t+mGj8UzYO0sh4BKPYNPdLwVRNDsWkbK4gKcDS2g1DpxlFa+B50iGYx7I4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780966517; c=relaxed/simple; bh=A+zCffSgtDpABgOYIVkvEBcG4Mobuv6RpCqlRuiK7gg=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=OMGCnVqjlT99wVx1HuGe6g+MZvh+MbVN6C6eZ3LBscJrjIkANn/EmiFo5NlipD0wHB07ORcerp4HF4syZ4vCFDOpMwPvztpgktTXp+qExX2xZpelEV2Q4ScmQ0g5zu0kUYzLiIny5h6FJDjY/YvxUl7UN56ufp+mLIHUADpUWro= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=trailofbits.com; spf=pass smtp.mailfrom=trailofbits.com; dkim=pass (2048-bit key) header.d=trailofbits.com header.i=@trailofbits.com header.b=EXwGkZ4U; arc=none smtp.client-ip=209.85.160.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=trailofbits.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=trailofbits.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=trailofbits.com header.i=@trailofbits.com header.b="EXwGkZ4U" Received: by mail-qt1-f179.google.com with SMTP id d75a77b69052e-516d0db9372so39786371cf.2 for ; Mon, 08 Jun 2026 17:55:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=trailofbits.com; s=google; t=1780966515; x=1781571315; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=+HyHv1TopQI12/xekF9ndWi+ZcSkOOhM2X1iEg33WCw=; b=EXwGkZ4UVYV2oPnXLdDK1MYxlygf25vmMEe/SpAwCMjLosDYpXDpjU4bwxWyFMidBa PmMt0PQiNgOr1+A+2jGC5zqEBHpSfnAWqZNgpAkYW36yqUn35UWgeGuJFTYENRMEAlDv 8YdosfCkrXkYCyl23yeHag/GA7ajcAHN8rhs1nTqvTJSTZzPSY8ssIHJHKxbDkSluyqT DK3W+ot5O+AFZW3XDnGFHv1abncRfisFSPT/BGfY3uSqZfxBwAmc6wzWcH2WfrTmUD7V spDKeo1mZ36qATUBbWaGKoEG/xGiXUBRk5KG7HlE68DoSxZvUvLPATAIFLe4nN1iZjcR wTsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780966515; x=1781571315; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=+HyHv1TopQI12/xekF9ndWi+ZcSkOOhM2X1iEg33WCw=; b=VgsH10T8/WSMLYJQQna/C8OPXRmEkgoy6txsBLW/+3bfjtFy/4np6ee4AarwmoFJSL kutx13bnq2h+7mZ8e0Zy3s0Fm3Eo8hLZputj47a4OuIx+CgFB0pkqtKaOg1908CPTKEf SnwiZO3+dM1NKs4js/ss7eaN/hrmSEycP4fyXeHMASgurJaLGJiLTg0xOU39fKBvCjyW l92tvakq9G76fPy6/95OdFQMyLrGUR79rckd9YRq/lsPEienZgUA1NgZkFGAHC6On+cb JzQylNjqeblEnmdc5M8r8vkCOoSEf1SGrdY6e58G4N38CED3SKw0brShd2b9z8E1HRHc w05g== X-Forwarded-Encrypted: i=1; AFNElJ/p9iJzLm8QRrfIIXkmr45xRF/AaGr6gKmI5ntnyql0Fl7D+J79FyrKUL65bEOaXvow9DhpstZqXCb08FM=@vger.kernel.org X-Gm-Message-State: AOJu0YyZPvfupypT+MPoUJW0AmKa6A3J8X9C3rp9D73m2llzkJqoHlGd Rp/pnu5Hw5FKT5OGjryW/K5NDIuFGqqxCQ7ZfpW996XaCxht/x9BHe0KRWpS/rquCxk= X-Gm-Gg: Acq92OFVcZNUSILPjJ9RHqsiqYmdbIxiXdm6Lu+rYv9/dWZ3NhvVPaxfZAVs4Thib/g 6j8RJDsykefolkeBsUttNT5QDSsXlDiCwwuh+OAKzdsJpcHuIMTn0SjL1p9A/lzYEphjXQggyTf gPCup2F8CUxfUK3MHCvD6RnrJqRaCfFhVmdo9tonzTs7b5TJou7NP3eNMV9P8EAhJ/oH5X4qXgV pGECdySVTfSumXvUOZBEHHixlN3Th5SPDVPaBgaaIaZ35AbFPJhw2DWgkN/vA+tCQRVRxMuBVv9 eP0mLzyOIvlmKwqUsWyeuHJKFxfdczGFsd66VJsDXRHoqPP5ak3pipSm2GM1GHBTT0Frw2klZTx yV7CvA4nXVOej3nWhvMaNrUdvpKPv2merDsW1I33lk5T5JcI7FNbfjHTIOwR0uEloOpEDkHnX7l l9UuMlkyBzo2KwlRUVnRZsTMvv+DZmQCo7KkuNEegQFtIXZQA0 X-Received: by 2002:ac8:5a50:0:b0:516:d60f:6457 with SMTP id d75a77b69052e-51795b0cf8bmr242983811cf.4.1780966515500; Mon, 08 Jun 2026 17:55:15 -0700 (PDT) Received: from localhost ([161.35.96.86]) by smtp.gmail.com with UTF8SMTPSA id d75a77b69052e-51775c07eb0sm184990851cf.5.2026.06.08.17.55.14 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 08 Jun 2026 17:55:14 -0700 (PDT) From: Samuel Moelius To: Andrew Morton Cc: Samuel Moelius , linux-kernel@vger.kernel.org (open list:LIBRARY CODE) Subject: [PATCH] lib: interval_tree_test: validate benchmark parameters Date: Tue, 9 Jun 2026 00:54:47 +0000 Message-ID: <20260609005446.1241288.1525a5964698.interval-tree-test-small-max-endpoint-div0@trailofbits.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The interval tree runtime test accepts module parameters that are later used as divisors while generating randomized intervals and while reporting average timings. For example, max_endpoint=1 makes the generated interval end value zero and the next modulo operation divides by that zero value. Reject non-positive counts and require max_endpoint to provide at least one non-zero generated endpoint before the test allocates state or starts the benchmark. Assisted-by: Codex:gpt-5.5-cyber-preview Signed-off-by: Samuel Moelius --- lib/interval_tree_test.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/lib/interval_tree_test.c b/lib/interval_tree_test.c index 16200feacbf3..58f6f3a307f4 100644 --- a/lib/interval_tree_test.c +++ b/lib/interval_tree_test.c @@ -311,6 +311,27 @@ static inline int span_iteration_check(void) {return 0; } static int interval_tree_test_init(void) { + if (nnodes <= 0) { + pr_warn("nnodes must be positive\n"); + return -EINVAL; + } + if (nsearches <= 0) { + pr_warn("nsearches must be positive\n"); + return -EINVAL; + } + if (perf_loops <= 0) { + pr_warn("perf_loops must be positive\n"); + return -EINVAL; + } + if (search_loops <= 0) { + pr_warn("search_loops must be positive\n"); + return -EINVAL; + } + if (max_endpoint < 2) { + pr_warn("max_endpoint must be at least 2\n"); + return -EINVAL; + } + nodes = kmalloc_objs(struct interval_tree_node, nnodes); if (!nodes) return -ENOMEM; -- 2.43.0