From nobody Sun Feb 8 02:41:16 2026 Received: from mail-pf1-f193.google.com (mail-pf1-f193.google.com [209.85.210.193]) (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 5FA092FE577 for ; Sat, 17 Jan 2026 09:12:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.193 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768641166; cv=none; b=ll/suvU+xUQpQDH2Rc/eDR2WeWRFUTjHV9dFr0Hg74MpH6Szo86YXTzMzZQn5adHIHSqm2CMPdHtonmX8ABdqsiOjMs8SCjKP3HSg59+zttn72BIc99gKbOfFAQpdMTwDHIH+d2ZO6/TEYLbDX4TI9U50c/Y1eYyPwjVc5/E6QU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768641166; c=relaxed/simple; bh=azcZbVnhaqcYPvbtuV79VjUbEUhlxyg9oKvTSqV9gl0=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=BRQuf4/pCaQwXnoep0bLxlht0Pm49a5xCoQKCCzDMTCdTCofGEf9fYg5KN3MrDQe947ZBcYipCsLjSfui++IwvK92Q2D7HBucC6fYkyjMV+BAfWfePt9b9aYVxkxLOV9uUcFF2/RRPigPpYTuT6PscIAJCF8McXoWrL5sfYhDTo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=CFYlQ8zV; arc=none smtp.client-ip=209.85.210.193 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="CFYlQ8zV" Received: by mail-pf1-f193.google.com with SMTP id d2e1a72fcca58-81345800791so1729554b3a.0 for ; Sat, 17 Jan 2026 01:12:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1768641165; x=1769245965; 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=M+JCaXQ16amp6hMUtWaxk+pdDmeoh4XrN4ClHnLFtuU=; b=CFYlQ8zVvcV/aDW8KaILOl140CViD0BHjmCM8+VhFpO9q1KoJqeKGl6DIoVHCN74US uHNtVlGI66NbtqfDZcSZRSTT6ngAScXGyEZjlhFhuP7tun9wgvBOXAC6f5tbnqLpyALf yoYm/r0B1zoizXS35LDnVxCra1ZXxyLjigZmCXEPHZKW2LiAP7FHgOkPZ8AAK/oepLUM AWv1YZmiWy2uX/nY7SqPKLmnxk+8ug5iK9UZ0vIQ3s6kS1vISguJMfaIvyeU0BFc6BnO ybKYVhtRuMXOU6AZua4/2CiT/ySdhEfrFH6MkAzgKA3yfuxYAgtoRn6+YU0fOKr0CQ7D 5iIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768641165; x=1769245965; 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=M+JCaXQ16amp6hMUtWaxk+pdDmeoh4XrN4ClHnLFtuU=; b=SmF0TqOABGjjwASszg06prhOH6o6rkPM9Z1izZoemqxZh4QTbY4SZHJlkNHkdkCycT UWtkX5y2pvwmgjoVTZsOx4Iyna4AyuaEBPaLTErWGG+WIs3PHIWvIuFuDvhvwMPeLK8D Da8VFUKQEp2vGcar0dnyjaHV2Wy16koEuz8gBR3e1lh7JgsDfCK0RPQcYFjVSJfBadwX yA8AnYgouiyc8aiwF1gE8gSoDpcygDCc4Cr1i4Er1+LQKzxZfjwJV0riSR6NWy/0cQce wGlFHDuS1e3lCbfDaUnbex5gc087qfg0JFfqq7nO/z2hReAyIKJD98xBfeGaMI13jLqj EwIg== X-Forwarded-Encrypted: i=1; AJvYcCXCz/PsaGHRiQhtILuo8zsaDRKcV/ergWOioBvCd8M8oR5La7y+lRf77Buz11Hq2n+nNnR/qFyJVBItFTo=@vger.kernel.org X-Gm-Message-State: AOJu0YwtcjsGAhljrFYFdEAw0v43kWOn659Mj/9QYBny1ty3aHxYJqMe 56P2b26sz4EvKd6ZmJ8WYAIPho6YEmqOKGmNCQzihTCQRjVAfWuyZNAK X-Gm-Gg: AY/fxX6UpWdnaGEtbS/bBBWnYnqRrhKfy4hJVCq1HRv2wQP+uW/8uqOI22LZ48nazYI ABZUXZDl7r4EK6ST3l3d582eO2WBiCWS0p+0PIFoJi1yBYeE/P+SsGrcMMMjkfe1611YETCTGiq L3xxw5QIsfyq2glz8OjBkDTqIfXxB86zg5rlctOvwCXr6uiBLL4tP7b0OeGVV1/yYYncfxk0q3N lc+MCyYpCwMyw7PsBr5CsT3rnTejPhMfmjSnQnFNEKoTPrHjZWgvPeRBXiit6nguWUlv98YOF2X tZ6oFdNavtJw3M7floEUvwoXBR3Z71fZhUbOsXE2thCtiYYP6IxaIUV3jii7m4GQbQ9Ozke+5fI dvgZwIaZTIoIVII7buKK9eH5ZuEc47m1mRq7c//Fl39inC213ivPBKA1OxJhg7dzdKM8PzU7q6A rPLs3JU+t56wo6A5bsF0FsdmLITdt6EzhHFU8Wo3xMfGlnAeV1g7hsrbPpC6Ph8JQnQO2Zzkovq JeGC4tvEd9yblGydhzUyEy9EASKhZqQfZ/Od/dlW+oPuMo= X-Received: by 2002:a05:6a00:2e09:b0:819:bad0:11c6 with SMTP id d2e1a72fcca58-81fa1881497mr4768446b3a.66.1768641164762; Sat, 17 Jan 2026 01:12:44 -0800 (PST) Received: from c8971f1abf06.ap-southeast-2.compute.internal (ec2-54-252-206-51.ap-southeast-2.compute.amazonaws.com. [54.252.206.51]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-81fa1278460sm4021131b3a.38.2026.01.17.01.12.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 17 Jan 2026 01:12:44 -0800 (PST) From: Weigang He To: robh@kernel.org, saravanak@google.com Cc: grant.likely@secretlab.ca, shawn.guo@linaro.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, Weigang He Subject: [PATCH] of: fix reference count leak in of_alias_scan() Date: Sat, 17 Jan 2026 09:12:38 +0000 Message-Id: <20260117091238.481243-1-geoffreyhe2@gmail.com> X-Mailer: git-send-email 2.34.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" of_find_node_by_path() returns a device_node with its refcount incremented. When kstrtoint() fails or dt_alloc() fails, the function continues to the next iteration without calling of_node_put(), causing a reference count leak. Add of_node_put(np) before continue on both error paths to properly release the device_node reference. Fixes: 611cad720148 ("dt: add of_alias_scan and of_alias_get_id") Cc: stable@vger.kernel.org Signed-off-by: Weigang He --- drivers/of/base.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/of/base.c b/drivers/of/base.c index 0b65039ece53a..57420806c1a2b 100644 --- a/drivers/of/base.c +++ b/drivers/of/base.c @@ -1942,13 +1942,17 @@ void of_alias_scan(void * (*dt_alloc)(u64 size, u64= align)) end--; len =3D end - start; =20 - if (kstrtoint(end, 10, &id) < 0) + if (kstrtoint(end, 10, &id) < 0) { + of_node_put(np); continue; + } =20 /* Allocate an alias_prop with enough space for the stem */ ap =3D dt_alloc(sizeof(*ap) + len + 1, __alignof__(*ap)); - if (!ap) + if (!ap) { + of_node_put(np); continue; + } memset(ap, 0, sizeof(*ap) + len + 1); ap->alias =3D start; of_alias_add(ap, np, id, start, len); --=20 2.34.1