From nobody Tue Apr 7 01:01:25 2026 Received: from mail-pg1-f169.google.com (mail-pg1-f169.google.com [209.85.215.169]) (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 4351E19E819 for ; Tue, 17 Mar 2026 03:16:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773717380; cv=none; b=Co6LvZJnuEvZR97DLd4ci5np2hA71wRlMj4SMOy+jyOc9ssaEpFQCAOFXbTGst2EJvaJGL3e8UvDE/OJXw4edK3a4kR4G6SDQnhnoK7aH2+BDuBelDXl/KiqOko8CWKdnMEeA3i/RI4QdGD1G7oWgASGqLtLRhW0NT+5Blr0ZKc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773717380; c=relaxed/simple; bh=FT+P1EjJH92wXZ+Pu26PhT7dHa3qO3effDC3eHCTM/o=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=Vxg625saW576S5vAWyi3vFu3nJGY8eXmCGBpiGBu8UIHlE9Du9ypxZy2mgwWhAYg38ocrmhthlpJeejrc7ZIOt+mf92DUcpH7l1PjMLTGLAiGusVUNrr0+Xr/eO9ZMp4QPhS5SwUFzfwCYJTlJkuxTsWBXyXv+l4kWrqz283lTg= 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=Yk3k5mc3; arc=none smtp.client-ip=209.85.215.169 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="Yk3k5mc3" Received: by mail-pg1-f169.google.com with SMTP id 41be03b00d2f7-c70e27e2b74so1846512a12.0 for ; Mon, 16 Mar 2026 20:16:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773717377; x=1774322177; 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=krJBNPXzL7F/I+YTsM1rnxuBWgcuv3E638XkCseP024=; b=Yk3k5mc3I7yookttuPSOGu8EZfUVDmZP/VVUTQyLFf81LE3ryPpHST2L6ZFo4SDhW4 Dl5BoEa/O2pqRjti8dPx8KJQtcc0TjSYuL+QEicWodHznof/BoqAD61K+XBDL35xKg2r 8PTNal0RdRBE8Hnbt6uQtQvByr5FHjN3iUHKdtd8GL/qPEsff4ntts0vzwlU3AlS7MuR Qgpo/m9POcYy6uii1r/ccJoWVX9ehaTcSFbV3Vitpel1PlGZsLohspnmsv4JLW4PcM2b 41Tu997+///2V+wsyLUAxkmxg66DGTCWqPNthPjiTsrj3SKb7MqTmoDY5I2ir2rsBBau XF8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773717377; x=1774322177; 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=krJBNPXzL7F/I+YTsM1rnxuBWgcuv3E638XkCseP024=; b=LDwqAblBIyNuT8dg5I+BZYotqyVe9Imm/6VwxDq8u9a72G+QaP7AKmIv/zp4scUoS6 9Ohr4tqfhjKkfKpV1YwaYznP613wltAkQFV+t6kNDKQB8D8OOtgQWxe426SDCPio9wPJ z0TBbTye6KUToJkUO96/1DAJL0RPQ+E5mEbjOdrsAUKekKKLLRgocWEcMUMnQVNjfEJW DaNuVQeKgkBrkZ5flUgXg1Dd5adSpTM75Zr0fgs00XCrw/1qnBMN323aZwWZXp1gTbdQ k/ojyYufecwAM46EgAKb2hXZZQc+eUUS1U3j88rEL8mHW5g8XgM5lDLVmy+SvjhW3nft mRSw== X-Gm-Message-State: AOJu0YyIawggq3t0PwjF0bIupjn0wHhQKzsznZ9OAZbbzqCQx4wBC1lA gnebS6KBYQy5rAhlOMha8I9k06p+5VbV+Dqx6eQBNAm3cOrdCII6GesDrjx7A4gF X-Gm-Gg: ATEYQzyZzmJKePHN+Ee8eavMfL8tHmwNvUK2fh9vqwowlT85YbCFdcS39YN0mMiJvlG V9sariDtkKrYv1xfmC1eXulAKm2Y7zp6nIhNpkTbGIXrno98jf/cQ3qyxpvSM8WXmNTHWDkPX+k K08iOHnf1oABrtX4vEA+u5G0+Kg+9iD2XBW0OxSY2LQu596WSt2AXcKycxknv58EDstQTez5Nf4 lz/kF4IHLtdL6FLpTUnQ/7YQ5ik26JtXIb54PqVTmGi5OLjjwixoeSRCM5fh/clKfBMCZQlrF4C 8kGk1XfkZ6XQcrmmD2bxgbnPevdQ8o604ZXs1hTGT8gm3PUGi2YWIl5zmLm3Xk+cs5j1DmsZwZ/ b3QaUsVFnpbHuOzBNM0/Q0tfVxvTLqTsURd//DniqqFZJJRc/wuGOCQdvYFqy6DEPjHynIAqPii yvgSCjSI8Ii7r49dzlI/69CBTCucycWv8r2iLvgJn4zM/HB81E0U1KggIADZ701kAcBA== X-Received: by 2002:a17:902:fc43:b0:2b0:60b2:4dc with SMTP id d9443c01a7336-2b060c14bdamr28923445ad.15.1773717377286; Mon, 16 Mar 2026 20:16:17 -0700 (PDT) Received: from ryzen ([2601:644:8000:56f5::8bd]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2aece83188csm125178245ad.75.2026.03.16.20.16.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Mar 2026 20:16:16 -0700 (PDT) From: Rosen Penev To: linux-kernel@vger.kernel.org Cc: Kees Cook , Arnd Bergmann , Greg Kroah-Hartman , "Gustavo A. R. Silva" , linux-hardening@vger.kernel.org (open list:KERNEL HARDENING (not covered by other areas):Keyword:\b__counted_by(_le|_be)?\b) Subject: [PATCH] lkdtm/bugs: combine allocations with kzalloc_flex Date: Mon, 16 Mar 2026 20:15:59 -0700 Message-ID: <20260317031559.93544-1-rosenp@gmail.com> X-Mailer: git-send-email 2.53.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" Avoid a separate kzalloc_objs call and just use a flexible array member to do so. Simplifies allocation. Signed-off-by: Rosen Penev --- drivers/misc/lkdtm/bugs.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/drivers/misc/lkdtm/bugs.c b/drivers/misc/lkdtm/bugs.c index e0098f314570..938916e5b53c 100644 --- a/drivers/misc/lkdtm/bugs.c +++ b/drivers/misc/lkdtm/bugs.c @@ -515,9 +515,9 @@ struct lkdtm_extra { struct lkdtm_cb_ptr { int a, b, c; int nr_extra; - char *buf __counted_by_ptr(len); size_t len; struct lkdtm_extra *extra __counted_by_ptr(nr_extra); + char buf[] __counted_by(len); }; =20 static noinline void check_ptr_len(struct lkdtm_cb_ptr *p, size_t len) @@ -533,17 +533,12 @@ static void lkdtm_PTR_BOUNDS(void) { struct lkdtm_cb_ptr *inst; =20 - inst =3D kzalloc_obj(*inst); + inst =3D kzalloc_flex(*inst, buf, element_count); if (!inst) { pr_err("FAIL: could not allocate struct lkdtm_cb_ptr!\n"); return; } =20 - inst->buf =3D kzalloc(element_count, GFP_KERNEL); - if (!inst->buf) { - pr_err("FAIL: could not allocate inst->buf!\n"); - return; - } inst->len =3D element_count; =20 /* Double element_count */ @@ -564,7 +559,6 @@ static void lkdtm_PTR_BOUNDS(void) ignored =3D inst->extra[inst->nr_extra].b; =20 kfree(inst->extra); - kfree(inst->buf); kfree(inst); =20 pr_err("FAIL: survived access of invalid pointer member offset!\n"); --=20 2.53.0