From nobody Mon May 25 07:55:34 2026 Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) (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 79EC536923F for ; Tue, 19 May 2026 07:30:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779175844; cv=none; b=VwBaUhOvcW8nipsfCi9X8chsZxNXb8XTlZsxw+jTvoiMJtTGrsWWVIlQRSV2PA2JlHY/vDdwHvC9dQJmu41N972+kUBpCyvxNOLub9e9KHzSieOxH8jAFiP3nuYLcB5bl/gT9XXoWq4H3Jaq4EeGQwfcDu+vCEVAJVxPJmiAGPU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779175844; c=relaxed/simple; bh=fih+UMTTMU8SI0U0huz/iP5ZsIur9kbs1tR0yEGvHF4=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=pAtveYyyQDxtse7/vDXeyTf6UR50ctrMHCtZjyWRZbXXx7dvu+hxV8Q6KQ+bSHmD0AV6RSvG4BB4GEkvbLfqusDymcd/RxavliyS7od2Xrx1RUhZALO4mJsFI+t9rqUyD+tJrg5QS6Ys56nmPOVcOQdL4TVOagih8B0Sj5trRKs= 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=g+/70gV3; arc=none smtp.client-ip=209.85.214.178 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="g+/70gV3" Received: by mail-pl1-f178.google.com with SMTP id d9443c01a7336-2babfd18435so12788535ad.1 for ; Tue, 19 May 2026 00:30:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779175843; x=1779780643; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=OYUTZF29mvDj3ULrVc16zWYfbDKqFs3gpuh3cDIl/Js=; b=g+/70gV3KKBzQVZiovfYLMXA/QT7DlXzCchtDFa6UJe6fCM53gCVZtHseNxk0I2KHp YuimXmcLr97e5g9S3uBjx/KkjrKrUizPZuJGtFDpWxuUkAdxcRdJVa9DqKPKfZiRWvNt CI5n4DhizpQhBa4uwlaTddyhlj4Qs1BHLuCjdDvdE0rPJx5XRGeNmGHy/Dt81OT0920t 8st2zLnppLkcwbSrYNVNf2Q1CTV/LZ8PPFz3wpmg4Vl3EKFfOn6zc3gZaw9AcFDHntil 9qGumfe1Wvk0yWWcQVOTBOD1nLMD0ImJzTgVIgizxOOBfH7nKgNhz+GcFv1Eyx3H8vd7 cqhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779175843; x=1779780643; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=OYUTZF29mvDj3ULrVc16zWYfbDKqFs3gpuh3cDIl/Js=; b=tUmgZbmiOybLS+8GRPVL+XiAcNn7tVMMydy7dIqyjTpNZAlbsNVmKnhLUCzz9twhSt ekUTt4CQ7gXK7FuXXvPTVzrKi144k6RGISqaGaZT65g5eN/qkiDheA6bE4pNJ8bO/TtL KmSxD99V5lG0/oHRR03/BanYedXZ9Np7CVSDc9SbMedFGPnd2GEalBrXXIFQbi7aQDzW p8TYkom5GMeg14Sek/RhVqhFW39Um2HMLO2mlW9n4Ry9qnY9UlvgR6U3C2uWxzQpkXqz D3vPgBMzhT3k72Ce1uOgVu+LZEsDv29Sq9S9lnmLLJaPdNKF8yuvU815q1xZl9WCYhoa EZEw== X-Forwarded-Encrypted: i=1; AFNElJ9WBHl+UhzLvQrajvpCI+AdeRBP1J93kzyhj7jj69IB310xlfCwwPzG4/T7b4VjQjk9XtsxsUgLs/7L+UE=@vger.kernel.org X-Gm-Message-State: AOJu0YyHlpfO29MGSCWeQjNY4TjgxrmAOxliXNzIzREdcC8ZNgWeg6DP 3Sl0fSFfxaRLwSaB7VgXiJT5WSmUnn4dyX1hJGpmgZYJmhsvP8uJomX7 X-Gm-Gg: Acq92OGq5vWS6TikPIDzoevQ307uYutEq7i+8VkDmvGImcYSoLZ9M+Hm2a0VN5fAxrI 47UOjRaVOKRDWbaQwFGA65EHFZQtIqcwEolqqbfAZyieJppFyu/Ofep4m7yT08qFACctwhuyXoN t43LVumGUm+ySykPoUd4l14QZ3fUKxG+TulGhFJ6S8KKmatz9g7KZvjeJ0dgWGCfzVx6vdww4FB p1x4np0nX8EY+/FuZnTc0PRgodypDPYEJ9EsXaZX+7QrjNisGi1t/k0oSW0wAEuJVwrwPHqEthT OW5mhQvQc7/eTZdOzfKK+QecpJ3qIsMmAtxQNkQNbTihATF7Rlm0HukS0d7cgPvKQTvva8rNDlG ruMJNWbQ32hTWz8GQB46Ix9aczY3+ceOiW4sOOH8ngJ5wojZAp74Y48RlgmmMv4fcqQ/zv4u+aG rSK6XOk9Fbpx65TfLm X-Received: by 2002:a17:902:fe81:b0:2bd:657f:3a1b with SMTP id d9443c01a7336-2bd7e9399admr141380355ad.40.1779175842764; Tue, 19 May 2026 00:30:42 -0700 (PDT) Received: from lgs.. ([2001:250:5800:1000::f280]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2be2782b242sm20038605ad.64.2026.05.19.00.30.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 May 2026 00:30:42 -0700 (PDT) From: Guangshuo Li To: Kees Cook , Guangshuo Li , Greg Kroah-Hartman , linux-kernel@vger.kernel.org Subject: [PATCH] firmware: edd: Fix reference count leak in edd_device_register Date: Tue, 19 May 2026 15:28:25 +0800 Message-ID: <20260519072825.1037335-1-lgs201920130244@gmail.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: quoted-printable Content-Type: text/plain; charset="utf-8" kobject_init_and_add() takes reference even when it fails. If this function returns an error in edd_device_register(), kobject_put() should be called to properly clean up the memory associated with the object. The release callback frees the enclosing edd_device, but the current error path returns without dropping the reference, so the release callback is not invoked. This issue was found by a static analysis tool I am developing. Fixes: dd002e807486 ("Kobject: change drivers/firmware/edd.c to use kobject= _init_and_add") Signed-off-by: Guangshuo Li --- drivers/firmware/edd.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/firmware/edd.c b/drivers/firmware/edd.c index f980c5b56858..f26eae48774f 100644 --- a/drivers/firmware/edd.c +++ b/drivers/firmware/edd.c @@ -708,6 +708,8 @@ edd_device_register(struct edd_device *edev, int i) if (!error) { edd_populate_dir(edev); kobject_uevent(&edev->kobj, KOBJ_ADD); + } else { + kobject_put(&edev->kobj); } return error; } --=20 2.43.0