From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (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 84A06355F44 for ; Thu, 23 Apr 2026 23:49:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776988141; cv=none; b=DzhW3+rxwUnQpoP2PZQg2JRW+L0muY8KSdeQvXn24HaUBerbzBUI+29ddgid2GwSM/tbccdhRRPHmitK2RrtwPt409MCDEAibTtT1azF/k8ZcTOIWzay/VS6Lr2wves8Z3D/uqvl+NxZiyMRqKg4j0+i92C9K/DmqFcNC6CUyRA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776988141; c=relaxed/simple; bh=Ftb5CR897mq8vfwY3xCUgzBWZQGAm8x0HZgh8xb92Zs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BbCMU4ZSX6OrAwkC5SzXCnloqeic8tM/ymszuanrX6LC4nzx9UktskaG/FJ5/c9qz591nEVZtfDyK0bY6b1G/Y2IheQ25/CHcaXpmP00u3iQOQX34dmCl9LUaD5nvm/E5uufFyY10Sokl2kkfCMNS9f+y7ZVqmXdf0XTtmU8vD4= 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=m7d7JoNX; arc=none smtp.client-ip=209.85.128.53 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="m7d7JoNX" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-48984d29fe3so74181005e9.0 for ; Thu, 23 Apr 2026 16:49:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776988139; x=1777592939; 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=zsfZ2qn7mJjDdFBLWj4T8+3T0/zctntZPaRw9g3HzKQ=; b=m7d7JoNXBStHmIOBSHQODwoBuxQG7PDeYNwqAzgsCPBbZ28UEkFZYoILn4pmazjlTS BuNIEKxdoMcsrva6p5Aah8LSlH3zWW428QtxzAyZ6kGWppmvR3sfx5rLzMPtwIfqDYTB 3dpHLNxFL4pgO4Xk28hAEJDAc7P2H8jcSAGF0c4EjlWyhbtQv2JVbns5ZkYFoNf0ZCke 5fAyEekSeg72P2y8WJiM6OIVoXwf59bgeO5bxm0fl6lsiSBoBsgR//HSsJXLxlXXNlYZ wsN4p8rhkYRkbQ+uhMV6fLQ9vh9zUOoWB/mhiOUPpEWMNcno/DLw5bYNVpDGaoQONxbK hVtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776988139; x=1777592939; 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=zsfZ2qn7mJjDdFBLWj4T8+3T0/zctntZPaRw9g3HzKQ=; b=f0Vgw3/Re82GYnVraD2IlN06Gv6K74Kd+2AHyuXCFWUQW1mFGaUMmD9sC9FktCUNV6 c9s8bWKuYcI/Ok1ryD1nruXeg2vvpJbFiWHfHqGC4sgYbn89J9QN1Lx/lzEqP3G4C38j 4q1QhhuZyy435HcpSTz2ULGV7scF16R4D/zOTN9PZqE8Us/nEPzEzOxyH8k1s6aGiYrh BdyxyYWOXWdxXwet8ZcogHwqs9RLMc1i+cHutfs7GHA6c04vXjUlKmb4CaI17w2pH6Zc V2NrPKqQx39Y7/osAJClZjJk1f7m9/ww6v1Fgv+47fciNKSvJlANZs01F+my1r4tsmmS bvag== X-Forwarded-Encrypted: i=1; AFNElJ80LpYXV+hkct4Isr1CNCY2FN/mtLieed0ISxP3WMjLFlWWkhszXOSU44o8+Ojl9o8aBewXIVhbj8TFm9s=@vger.kernel.org X-Gm-Message-State: AOJu0YyJuF1xhVQb9TY8npgkGZH/JPu5L+gXKxS999TH2Qgx3z5A++xz /JY+3xqtHJ23vQ5ROz0QFrBicVyX9RI/FIlV9jpqSTewLuU+6deW2wq67SlFeQ== X-Gm-Gg: AeBDieufXFMwfxq4roRnRiJ8Sgv2rFoiK4WAJGThdqEHiyjruUyEIvkUNJU1eMTX8nt WqF4WyeufFSCY4PX9/W5B/F9xQd8w6+vkYIffx15nAVKs/ZK0YhZ77lE31+FmMiTXaHH61iB2iQ onG53119I09orCPmO8z/xz95BEsI08KsmYn9x/IULLsu6ZSOmBKHTaIC5CANyI3NxcOiW9LF3hc a2ixTudwUSq9DVfMMLQgQdhDQeB6jqX5R5fzxRP8c7HrvnBbSFa8xbGL7DJ09jM+SakTL1H8Jsj CAZ7KZ6H1v9KAed3g63md+KHmeVxSHY8Jn33D9EAQY8NYx3PkCa5J+vt7TbygiNdkYRbCUEb/PH moZ/QDhcB4jWQlAHIO09R4Hev+RdcNhVWOZ1tVtFhqmKuq+lLmg5/G6UeTJ6FBsCHK8hVbyKwB0 qUO5jyKqVTan+/ochVsq4MFGrwIWPwmDfKH54no+A= X-Received: by 2002:a05:600c:c0cf:b0:489:1f3e:5f6f with SMTP id 5b1f17b1804b1-4891f3e62a7mr201443495e9.12.1776988138726; Thu, 23 Apr 2026 16:48:58 -0700 (PDT) Received: from localhost ([2a01:4b00:d036:ae00:e8d7:434e:1f34:2cb6]) by smtp.gmail.com with UTF8SMTPSA id 5b1f17b1804b1-488fb72d365sm280596905e9.1.2026.04.23.16.48.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Apr 2026 16:48:58 -0700 (PDT) From: luca.boccassi@gmail.com To: kexec@lists.infradead.org Cc: linux-mm@kvack.org, rppt@kernel.org, pasha.tatashin@soleen.com, pratyush@kernel.org, linux-kernel@vger.kernel.org, Luca Boccassi Subject: [PATCH v10 2/4] selftests/liveupdate: add test cases for LIVEUPDATE_IOCTL_CREATE_SESSION calls with invalid length Date: Fri, 24 Apr 2026 00:44:21 +0100 Message-ID: <20260423234753.3873095-3-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260423234753.3873095-1-luca.boccassi@gmail.com> References: <20260423234753.3873095-1-luca.boccassi@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: 8bit From: Luca Boccassi Verify that LIVEUPDATE_IOCTL_CREATE_SESSION ioctl which provide a name that is an empty string or too long are not allowed. Signed-off-by: Luca Boccassi Reviewed-by: Pasha Tatashin Acked-by: Mike Rapoport (Microsoft) --- .../testing/selftests/liveupdate/liveupdate.c | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/tools/testing/selftests/liveupdate/liveupdate.c b/tools/testing/selftests/liveupdate/liveupdate.c index c2878e3d5ef9..f0a8e600c154 100644 --- a/tools/testing/selftests/liveupdate/liveupdate.c +++ b/tools/testing/selftests/liveupdate/liveupdate.c @@ -345,4 +345,46 @@ TEST_F(liveupdate_device, preserve_unsupported_fd) ASSERT_EQ(close(session_fd), 0); } +/* + * Test Case: Create Session with No Null Termination + * + * Verifies that filling the entire 64-byte name field with non-null characters + * (no '\0' terminator) is rejected by the kernel with EINVAL. + */ +TEST_F(liveupdate_device, create_session_no_null_termination) +{ + struct liveupdate_ioctl_create_session args = {}; + + self->fd1 = open(LIVEUPDATE_DEV, O_RDWR); + if (self->fd1 < 0 && errno == ENOENT) + SKIP(return, "%s does not exist", LIVEUPDATE_DEV); + ASSERT_GE(self->fd1, 0); + + /* Fill entire name field with 'X', no null terminator */ + args.size = sizeof(args); + memset(args.name, 'X', sizeof(args.name)); + + EXPECT_LT(ioctl(self->fd1, LIVEUPDATE_IOCTL_CREATE_SESSION, &args), 0); + EXPECT_EQ(errno, EINVAL); +} + +/* + * Test Case: Create Session with Empty Name + * + * Verifies that creating a session with an empty string name fails + * with EINVAL. + */ +TEST_F(liveupdate_device, create_session_empty_name) +{ + int session_fd; + + self->fd1 = open(LIVEUPDATE_DEV, O_RDWR); + if (self->fd1 < 0 && errno == ENOENT) + SKIP(return, "%s does not exist", LIVEUPDATE_DEV); + ASSERT_GE(self->fd1, 0); + + session_fd = create_session(self->fd1, ""); + EXPECT_EQ(session_fd, -EINVAL); +} + TEST_HARNESS_MAIN -- 2.47.3