From nobody Tue Sep 27 17:24:22 2022 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4McRLt5T59z4YG4Q; Tue, 27 Sep 2022 17:24:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4McRLt50j7z3wgs; Tue, 27 Sep 2022 17:24:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1664299462; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tp8UJNw7iYr2ibFp5gyUrGeTuSG+X88iMhBHsvyctJU=; b=QlFIPnvddTgLOHS/LC24cuP2jS60Hg4+Hb4DC6G3x36lqDtkFm6lW0dAwYK2T8fwFT8x8J EfLG8F32hIP6CT7F4rTtVcjq5ffJLmZwsdfS/mtHPqtvLX5KsmhKyQQ4/2m74rbXRArkBc l9MbJe7WQvpSMJfCwEHphNzzIii3PuHUygHwvds+EJYrq3KfUC60oMzoOaLbPH198m5KTk 8qacMiJ5i1rgp3MJ//KsIC0UQ6haeagkPVdRobJrsrhD+YK0LBUBLGqfo6I4F35iq+VJu7 0aP0Ng7xQD63/vcZv8cYGNlhbB/TisYa3HqEr0nFd+IAlWiqh13oX7Yc1WlCSA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4McRLt4481z1BWD; Tue, 27 Sep 2022 17:24:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 28RHOM5i075715; Tue, 27 Sep 2022 17:24:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 28RHOMWm075714; Tue, 27 Sep 2022 17:24:22 GMT (envelope-from git) Date: Tue, 27 Sep 2022 17:24:22 GMT Message-Id: <202209271724.28RHOMWm075714@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Doug Moore Subject: git: ed5183455e46 - main - register_oid: fix duplicate oid after d3f96f661050 List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dougm X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: ed5183455e4667ab92ff6f9d20cacaddb0a28909 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1664299462; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tp8UJNw7iYr2ibFp5gyUrGeTuSG+X88iMhBHsvyctJU=; b=yWmlu50Ol7mn/tTzXv1iAxq72MYdLh9NltTZ8SBTt7DV2eJczEskAY/Z4EaiNwh0tvGV0V XScqjToH0++RohPV1qLZodFqsDq1QW6Vw4Zjr/gqMd8WMfoX/Kered+L/0F9Y5w8cRaPo1 wC1XbRFWCv4pZXMc+xnWOLhIAVPCK0618Ev0s710GGdbMGzk3024b7DQqyd+EI5ijJoFxA kf0pGtS/YpCl31No4l6hWvj+YOi17f8pIM3/2g/uotv8GM8yLPKPtg7S7Qc/0xImQAQUUe FYu+YyxDWoIofzXkk+zWu8hndSkirjZYQknVWs6AsoJ9lV8N0all5H1mQmsnwQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1664299462; a=rsa-sha256; cv=none; b=BOMwtVxcQA6nw9qCoUclVa2hFAFKWeCWjquGCDCphL4Yhk5pRmK8SCeStPWI9ABy8TvTqa Nc6ppdL/CmZqfkwjPXeU1KKAGevWcLxrYk4neuH5690fVtBPwKe2tJx6kQ6O9MnjfuEL/K cf70HMgMfk0e+hsi0JoOZPrPuzrUrXoPKeKYCJ3jF519dmJk6g8w8jeIcKSIdhWSZiSgXO PmArLujyHQnBUo0ithFq8ixTybYVxhyDYRnChZHXIaD9KlT8kq4KaiK4UOHBe+5OWtsgOI nis9mKtU3K7jxM/0f68nr3rpu7Qe+GV53rRwCliuV73vrGEfBs1F5j0KzC4n0Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by dougm: URL: https://cgit.FreeBSD.org/src/commit/?id=ed5183455e4667ab92ff6f9d20cacaddb0a28909 commit ed5183455e4667ab92ff6f9d20cacaddb0a28909 Author: Doug Moore AuthorDate: 2022-09-27 17:13:50 +0000 Commit: Doug Moore CommitDate: 2022-09-27 17:24:01 +0000 register_oid: fix duplicate oid after d3f96f661050 sysctl_register_oid must check the uniqueness of any newly computed oid_number in sysctl_register_oid. Reviewed by: asomers MFC with: d3f96f661050 Differential Revision: https://reviews.freebsd.org/D36743 --- sys/kern/kern_sysctl.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/sys/kern/kern_sysctl.c b/sys/kern/kern_sysctl.c index 1a3fcbbf8ae0..a31c8f97daa1 100644 --- a/sys/kern/kern_sysctl.c +++ b/sys/kern/kern_sysctl.c @@ -479,10 +479,9 @@ sysctl_register_oid(struct sysctl_oid *oidp) /* * Insert the OID into the parent's list sorted by OID number. */ -retry: key.oid_number = oid_number; - p = RB_FIND(sysctl_oid_list, parent, &key); - if (p) { + p = RB_NFIND(sysctl_oid_list, parent, &key); + while (p != NULL && oid_number == p->oid_number) { /* get the next valid OID number */ if (oid_number < CTL_AUTO_START || oid_number == 0x7fffffff) { @@ -491,10 +490,12 @@ retry: /* don't loop forever */ if (!timeout--) panic("sysctl: Out of OID numbers\n"); - goto retry; - } else { - oid_number++; + key.oid_number = oid_number; + p = RB_NFIND(sysctl_oid_list, parent, &key); + continue; } + p = RB_NEXT(sysctl_oid_list, NULL, p); + oid_number++; } /* check for non-auto OID number collision */ if (oidp->oid_number >= 0 && oidp->oid_number < CTL_AUTO_START &&