From nobody Wed May 22 17:34:54 2024 X-Original-To: dev-commits-src-branches@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 4Vkz2k6m7Wz5M5k9; Wed, 22 May 2024 17:34:54 +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 4Vkz2k4LcPz4kG9; Wed, 22 May 2024 17:34:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1716399294; 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=Y02pqzWHft3T38xFQB7Pje/sAN/HNQDQubbJi9rZ5p0=; b=DtmzTq6EDlSgLXxwiUrfJoE4naEylirUCtS8V/jGtdjbNp+y+sqKzHFIYzOuFdOkTvktpF B+gK9IJFXdOSkLpRhHNuJhpJnJOqEuDH1Q+61AsUvkMN9Virmee3pG9WVf5mBkzFi0+tWx jLrWJWkGX6E/J+8LxFBNTz0QlrW26uwdcT3a1evGSpK7vEFsb1os8tuC1QOXeMOKG86A1u jZQlSC2zp3gMouZvM1vhlHAmt9vH5ysWPQyZA2JmRVjPqbKaHwIld3l3j49EcFVs4bqcna gmfU2Nio6F4NvVwFHiWVj6PteZ0Zr/D27Gbps4siqvyYAQs8UMpvetW7luxp9Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1716399294; a=rsa-sha256; cv=none; b=RoTRv5LSo5mF0c0lVi2YvaDeKmYgNoLnpxx/om+QYJoA/YDvuao1NIVejNs9rBMXcRTW3A C342HblcajDWODcCfLM1UXGCZqWpSez0WZvJR3jOURWSfdIR2udCToz3uN86qlPStD9Lvw rrTWvS3/poAmxphnQPcBID2L0OJw9vD6FY53WD02gjuWDYgayoNjdEDe/7EInf8pJPP+O6 SPYz3Y+jepsgwHcP5vV5VcliBrkfoSTkJycQUUB/6jLunskP8383aETGQiD3x6BkoG9G75 /ks3msGzED5lpwD+Hm8BJsNahLkJvn3r92FI739nkGkJf9crKqASMa6hSNLFTA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1716399294; 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=Y02pqzWHft3T38xFQB7Pje/sAN/HNQDQubbJi9rZ5p0=; b=sdflXCVAn1eFpLMQBJWHCy5gDcVyCaSG9HqQ2aBRx+cwo8KS9cR8b8Smx7p4V2rC7ksmH+ wTDVl/c7WVqI8EnLXUmvdcMXOb9El5QRw9I6/vAt4SYw0QoOrL5QgtOYfC8xsE1zDxpv2Z i06tOarcR3O2p9OtMy5nGG9k/xYNwpOgyZ5WTTfTispJ92UQqERl2zMiOP8NlVX+XkIL4v a009v3zR5/lLnvRK/X3vOXoRpXWFdyHGgUdOmlv5amsv4HF4LdieRtWAaUeQs+z99IKlb+ Bo70wSyFxRvs++lAvuRT7+jPlVa9eQMcq8/nZXzbZTTMTpCKXNsLFoC1SFfbtw== 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 4Vkz2k3xs8zFcs; Wed, 22 May 2024 17:34:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 44MHYsPp026578; Wed, 22 May 2024 17:34:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 44MHYsXM026575; Wed, 22 May 2024 17:34:54 GMT (envelope-from git) Date: Wed, 22 May 2024 17:34:54 GMT Message-Id: <202405221734.44MHYsXM026575@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Marko Zec Subject: git: ada1d9b8edbd - stable/14 - fib_dxr: do not leak memory if FIB constellation hits structural limit List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: zec X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ada1d9b8edbd52d2ce206bb99de35858b2f871cb Auto-Submitted: auto-generated The branch stable/14 has been updated by zec: URL: https://cgit.FreeBSD.org/src/commit/?id=ada1d9b8edbd52d2ce206bb99de35858b2f871cb commit ada1d9b8edbd52d2ce206bb99de35858b2f871cb Author: Marko Zec AuthorDate: 2024-05-17 16:36:21 +0000 Commit: Marko Zec CommitDate: 2024-05-22 17:34:26 +0000 fib_dxr: do not leak memory if FIB constellation hits structural limit DXR lookup table encoding has an inherent structural limit on the amount of binary search ranges it can accomodate. With the current IPv4 BGP views (circa 1 M prefixes) and default DXR encoding we are only at around 5% of that limit, so far, far away from hitting it. Just in case it ever gets hit, make sure we free the allocated structures, instead of leaking it. MFC after: 1 week (cherry picked from commit 19bd24caa4c8c76ddf138b3a1598a21c8c5c3291) --- sys/netinet/in_fib_dxr.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/netinet/in_fib_dxr.c b/sys/netinet/in_fib_dxr.c index 539d7fe6c96f..326710cc4c45 100644 --- a/sys/netinet/in_fib_dxr.c +++ b/sys/netinet/in_fib_dxr.c @@ -1320,8 +1320,10 @@ dxr_change_rib_batch(struct rib_head *rnh, struct fib_change_queue *q, dxr_build(new_dxr); /* Structural limit exceeded, hard error */ - if (da->rtbl_top >= BASE_MAX) + if (da->rtbl_top >= BASE_MAX) { + dxr_destroy(new_dxr); return (FLM_ERROR); + } if (new_dxr->d == NULL) { dxr_destroy(new_dxr);