From nobody Mon Apr 6 21:52:24 2026 Received: from mail-yw1-f173.google.com (mail-yw1-f173.google.com [209.85.128.173]) (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 DBB1737A4B5 for ; Tue, 17 Mar 2026 23:23:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773789804; cv=none; b=inVJNq+KT4Hr2DWAPRcmQhSa5MDbaz25Nlbk0w0/erntjP1pc7Cffh4Hq/qXBviyLToZfIf3w5fAqoP6dMPY1KUmWtWheDFbVigtAe8kmtla/fYFfpcBuomSKglQOgNl/u/sdRGzThZoA/EGskfjl//zo5fqBakP7PqhuBlIZqI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773789804; c=relaxed/simple; bh=k3hQv9gFEIVWQ8BuojhozFDq2pcGJwnuFRlaWbZuJLI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nu5OmqFi+LRDODDlFMAV9KhUPQEPAwdrUrZf4LjlSqmxokGEeHy5r3fM8e6fl2C8sjqJh3cFqfNEk5FKUdwPlywkrATU8KkUWlJTE8GClePDOGawdfmbn07j1ViMmiV42Kh2gZbXuzDnAb2i2/siBq6ZGOAhg0WG4bw6a6MeuTc= 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=hxtoQgbx; arc=none smtp.client-ip=209.85.128.173 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="hxtoQgbx" Received: by mail-yw1-f173.google.com with SMTP id 00721157ae682-7986e538decso53542467b3.1 for ; Tue, 17 Mar 2026 16:23:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773789802; x=1774394602; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=GVqejN9RcyteX0OK/Wyi8jfYU0wStXL+Y9sOPfh9k1k=; b=hxtoQgbx2Uk8OlZmjjNMnhNYkUKT+wpKSKyd4eWcn1FgcaRMzq2hHQt9FOq7HZpZHk ua4L2A4lfckexLMfu4VjEtSLXEj5Rq6vi1O8W8Qn2ln/PBWS5V6MqkPlh5ZIn8mWvWI1 wkgBOSK9FtovWO6pUn9hKsgBSM7mOMM/bvSlZrzQ5oVk1J5JxU3vrNWGuhplpG8rULxR dN2m12U4PWAxdyhhVgUqv+NgyF5xMuuxXGOTwfUW2k/ibW7uvo2t/NawYeSv6r4gRPhg F3ul+dJLiV9eD5sAN/5sWgT2e8Z61hte1k1A3aEZ/PxkEqgZJtrssqALAspkPJzRYozb rEIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773789802; x=1774394602; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=GVqejN9RcyteX0OK/Wyi8jfYU0wStXL+Y9sOPfh9k1k=; b=aBde0vdSL/QxGQi4ipIebQ94t8f9PtP8S+nKaoFjdja36/6Q2nfUipo9uWB0GdmnZ0 M2iOUJhAgAADZxTSHbJQDQah2oC/664MCLqo2vzJbzs7i+4dx5kDakfcMOOA1j+FVmEg N05xlqPs2p04dcUIuwtvhNEzSFLl66V3fJoFma5Wx9stzq2aYioQiruliGYiWyI/r07t /F1U8Fj2WSIIsJQx6hIZhLLWA9F1gieqUJ5zwMwHEuGvIPuSWx9u/W011/IDoFoWber4 KNI8zpJb96y9jSlqZUcG61+VKg+5PaBiu/5NeYDkLhAu3JSAMZADKeGk1JadDN986DRS EQ5Q== X-Forwarded-Encrypted: i=1; AJvYcCVzDXqUjxzUeoyooplxyWiCpPZPGozQy7lxAjpxSP/TnF5+ZJDmflc+Y1b4NjVQCk/cklZHWUec8WGpKIQ=@vger.kernel.org X-Gm-Message-State: AOJu0YzhAWLyAMTzV2YZk6/xpvOzoJg8bYmeJBNA+F+KQcLjf66fPI8y oDtJh2Xj0LQqYUGrM+1UR0BMtRfC1iJhmPZVkyOuGLk3cykZGZIWM7sP X-Gm-Gg: ATEYQzy5te/58aIybaGbJYZjcbTeeK2Pq5j2bItF0QP37SAEFStGKssRKlgHm5gG0vH FUOZGiEJ/tGMjbihLEX31yFE5Oi4vP4uErJZK4GlJ99yrIXtRWNFRe+treRN/zSVCeVePDWR+c5 aRLk/VBegcR4ePighrsISO6CgU6pE21l3RC3x8RZyn+8r1r8e2yl2SmvBVRNz5fEw8jIBYqsXwq YzeVkMKPhj18zcRRvDb4VpHAsIHxucF8rfiDUApV+g12yA+qePnnpXN53NGwx4cDJJDnAt5UrLE G5501GXAGotZpRIfCZUA+NpgvUPBC+Ey7Vl2Gq9tut7vXlw3zZwUYeN+62TWs2kQVop8xpXu0Ad 4CJ1kXbLEJZMspiMTgIG83Ydb6yQnoeLDMZcciFsipn4ZEHB4Q5QAL/v8olJMk4UmNg176IR3/c oAMDDOoX8l69uiD7KWIShgicvptJ8WqjoZUrXJxVmmHvGZ0TOPVGJ3v2VNMsPMUXP3FMx5dNFlf XUUgZV1xxSl3aajWHVXX/hG X-Received: by 2002:a05:690c:110:b0:79a:38a2:d8ca with SMTP id 00721157ae682-79a718c62demr13000817b3.23.1773789801990; Tue, 17 Mar 2026 16:23:21 -0700 (PDT) Received: from tux ([2601:7c0:c37e:2360::f769]) by smtp.gmail.com with ESMTPSA id 00721157ae682-79a715d221dsm6858217b3.37.2026.03.17.16.23.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Mar 2026 16:23:21 -0700 (PDT) From: Ethan Tidmore To: Philipp Reisner , Lars Ellenberg , =?UTF-8?q?Christoph=20B=C3=B6hmwalder?= , Jens Axboe Cc: drbd-dev@lists.linbit.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, Ethan Tidmore Subject: [PATCH 2/4] drbd: Fix variable dereference before check Date: Tue, 17 Mar 2026 18:23:16 -0500 Message-ID: <20260317232318.18923-3-ethantidmore06@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260317232318.18923-1-ethantidmore06@gmail.com> References: <20260317232318.18923-1-ethantidmore06@gmail.com> 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" The struct is 'req' is checked for NULL after resource was assigned from a member from it. Check 'req' for NULL before assigning resource. Detected by Smatch: drivers/block/drbd/drbd_req.c:1996 drbd_unplug() warn: variable dereferenced before check 'req' (see line 1993) Fixes: 71d075200b462 ("drbd: rework request processing for DRBD 9 multi-pee= r IO") Signed-off-by: Ethan Tidmore --- drivers/block/drbd/drbd_req.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/block/drbd/drbd_req.c b/drivers/block/drbd/drbd_req.c index e88b5da15c1e..4cbd9ec15157 100644 --- a/drivers/block/drbd/drbd_req.c +++ b/drivers/block/drbd/drbd_req.c @@ -1990,12 +1990,14 @@ static void drbd_unplug(struct blk_plug_cb *cb, boo= l from_schedule) { struct drbd_plug_cb *plug =3D container_of(cb, struct drbd_plug_cb, cb); struct drbd_request *req =3D plug->most_recent_req; - struct drbd_resource *resource =3D req->device->resource; + struct drbd_resource *resource; =20 kfree(cb); if (!req) return; =20 + resource =3D req->device->resource; + read_lock_irq(&resource->state_rwlock); /* In case the sender did not process it yet, raise the flag to * have it followed with P_UNPLUG_REMOTE just after. */ --=20 2.53.0