From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qv1-f49.google.com (mail-qv1-f49.google.com [209.85.219.49]) (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 DC4B63F823B for ; Tue, 11 Aug 2026 19:05:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.49 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786475108; cv=none; b=FzkdnKqam3ozNuDyjo4sDyiTv9CCtXBgks5Abb22jv3ehOpyT9hFD2q+pJvtCsAa162UGm7acWASROwDK6xD//QU4hhxZCiujxViDqPein12D5mSZftXFeCj7+gXdGFYESDXumauBD9cthQy9eBhs/qTRv3P2vLNqZQkBeVRG5M= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786475108; c=relaxed/simple; bh=dtQLSvMtWMiVZGpDnv3jdyAIq3mZyFg3skEKro/tBWQ=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=rAm5pu+sHVVfRLBdkWaYSxBrelFNorh6Zdu8AW1zDGXxn+AXDKKddNQD1m2YYrkYAfbXZ1XvQvnEoALeqhBhikQN6RuwDNKvX22mtIL0HT73iktieLQOJIk7i32uAUIwXH0hYJmzHTtlktxP4DYEygva8MNTTzkF2In3KRXuZto= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20251104.gappssmtp.com header.i=@riscstar-com.20251104.gappssmtp.com header.b=rVBq1nca; arc=none smtp.client-ip=209.85.219.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20251104.gappssmtp.com header.i=@riscstar-com.20251104.gappssmtp.com header.b="rVBq1nca" Received: by mail-qv1-f49.google.com with SMTP id 6a1803df08f44-8ee88fce572so2043656d6.1 for ; Tue, 11 Aug 2026 12:05:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20251104.gappssmtp.com; s=20251104; t=1786475105; x=1787079905; 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:content-type; bh=0EqTz6YpumrE7hz1TYgnR5xonVWgewKgWZ3WHHSUxPg=; b=rVBq1ncayCIaklxEmwVNiexeyGrMXYhIwA5GWLMNvht29l94W6OpW91vr+rclQzS7G m5+RBr2l0Kj+7ObAwi2ePpalfZWnUGh1o4fYWSxVRKEFsOV5wHQ8Oh5cZB3jQatycxLC bs9H9ejmrGDhb3wOl4YNByDlgZn51fgmag5/QRQis0rAq/dwhY2TDXV80ZxQMlZZwQPz heotLZ0C/13U4ozK3TvNud2p8MAK0t4oWtoyNnRX6/hySTfTfB8HcmOGb1oXQxySwW0W hf+aaOEGfh+6bIm7dv0rSuOvIN8vRqEVLg/MG6OWxmN1o1ryvmDVflwZha1x26G6cHM2 GnuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786475105; x=1787079905; 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:content-type; bh=0EqTz6YpumrE7hz1TYgnR5xonVWgewKgWZ3WHHSUxPg=; b=Nrkz7/P19Cksk/lJpa6CsYt1GBqPAJMkFoXect1LLjeaGJ15tdcieg+0J5Wu1HDd5s KaWM8rRPVI2EMIN8x675jG9uBW7Zy+sMRevzScHQF2zDUzuVwh1raUgZGHmuFiJQwgJ3 +8ljnhsWDaAzF8FpQS3a8IG1J/93Ma6t8xp7kELt5z+pEaMTAgfwCOlbPu30iGGY8n7z 1ptvP2HSJ85YsOmxj9UiKTTJK6y6q4x1v7OBz34h8Mn8vUhLyP+ugJsbAE0ceqMNqsBs c88hY5pHF3kDyBaMa+tYogtjQEMhZlXGawFC3+GAOGoSaXupsdPzeqnKSA7Lkl6FipqI e69w== X-Forwarded-Encrypted: i=1; AHgh+Rrcq/X3vice7I9QegoBMRdZSlm0R6KtGWInUvF3wALtBWdbTSHRMjVURTNY+kb+i3UUzlKlBO6uwHEpZm4=@vger.kernel.org X-Gm-Message-State: AOJu0YyRqIdT8lbt1RAgG9LEna+wmmwHG5tzBSxw7413N9XIhuDj4yna DpyTkKv8/Xa6fFNHjV4O9d9gl978ttTb8EexPcuKGfSM/8+s0JXVsvxxZ6LXS7Y4q3c= X-Gm-Gg: AR+sD13KUKR7XaZ2aZWa4YgkWDnJy04yllMkWQbM9xow8UtJWAvz9z1WUmZ7X0I13tv X2LAvhXFtp+58JsI+yJXSTD0OQ3VH7o/kjRPXIaigiyzMvDJsvluKE8FbnGPF2e8LjCnbesO/bZ G6SlL+tl+AGsbXX20N2OcA/lLjsHnh0l9ppuoEoXWY3USoVmnzOCmh7pjb83S9No0Zmj1cKjck6 Ux368dk4BYvrS3TpHHuf5MaKbGb8ZcgJq8ip54qEsntQ3WHyAB53TZZWvH6BxGZKuxOv5t761tR kv2hsZArDNUsMZU6+XyZoFQIDdWP8uhRRRu2mseRJoammfmmD2yLltTuu9A+ktTHP6fmpmeF4eV jmG8Zl9uKksJijy+/WmVBPAgtS2Q4PKo8BaNZBQPqYURATxl5U/vjdSTKOatpkiWy9CFA0OMX1e UWqySSwtopPydZM46DReCdkX0N+2Es4fX4fra7XNmnUrJORQnGBejerIXuTBsE6bw8 X-Received: by 2002:a05:6214:1bcc:b0:8f0:a849:f392 with SMTP id 6a1803df08f44-90a667dbce4mr46695526d6.14.1786475105508; Tue, 11 Aug 2026 12:05:05 -0700 (PDT) Received: from zippy.localdomain ([73.62.185.64]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-90a6c3f0068sm5359446d6.49.2026.08.11.12.05.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Aug 2026 12:05:04 -0700 (PDT) From: Alex Elder To: akpm@linux-foundation.org, david@kernel.org, pjw@kernel.org, brauner@kernel.org, ljs@kernel.org Cc: demiobenour@gmail.com, tglx@kernel.org, debug@rivosinc.com, oleg@redhat.com, thomas.weissschuh@linutronix.de, linux-kernel@vger.kernel.org Subject: [PATCH] kernel/sys.c: use RCU when accessing task_struct->real_parent Date: Tue, 11 Aug 2026 14:05:00 -0500 Message-ID: <20260811190501.1486442-1-elder@riscstar.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: 8bit In the setpgid() syscall definition, a check is made to determine whether the target process is in the same thread group as the current process. The check accesses the target process's real_parent pointer directly, however that field is supposed to be accessed via RCU. Use rcu_dereference() to avoid this C=1 build warning: kernel/sys.c:1144:32: warning: incorrect type in argument 1 (different address spaces) Signed-off-by: Alex Elder --- kernel/sys.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kernel/sys.c b/kernel/sys.c index df69bd71de032..434fe6ad30e13 100644 --- a/kernel/sys.c +++ b/kernel/sys.c @@ -1114,6 +1114,7 @@ COMPAT_SYSCALL_DEFINE1(times, struct compat_tms __user *, tbuf) SYSCALL_DEFINE2(setpgid, pid_t, pid, pid_t, pgid) { struct task_struct *p; + struct task_struct *real_parent; struct task_struct *group_leader = current->group_leader; struct pid *pids[PIDTYPE_MAX] = { 0 }; struct pid *pgrp; @@ -1141,7 +1142,8 @@ SYSCALL_DEFINE2(setpgid, pid_t, pid, pid_t, pgid) if (!thread_group_leader(p)) goto out; - if (same_thread_group(p->real_parent, group_leader)) { + real_parent = rcu_dereference(p->real_parent); + if (same_thread_group(real_parent, group_leader)) { err = -EPERM; if (task_session(p) != task_session(group_leader)) goto out; base-commit: 6b8c8af514d739d0335f5579b585e02babe8a727 -- 2.53.0