All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Horman <horms@kernel.org>
To: Chris Gellermann <christian.gellermann@codasip.com>
Cc: david@ixit.cz, bongsu.jeon@samsung.com, shuah@kernel.org,
	kuba@kernel.org, linux-kselftest@vger.kernel.org,
	oe-linux-nfc@lists.linux.dev, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] selftests/nci: Fix out-of-bounds store on thread join
Date: Sun, 6 Sep 2026 14:04:30 +0100	[thread overview]
Message-ID: <20260906130430.GJ40544@horms.kernel.org> (raw)
In-Reply-To: <20260904095915.3372241-1-christian.gellermann@codasip.com>

On Fri, Sep 04, 2026 at 11:59:15AM +0200, Chris Gellermann wrote:
> The NCI test collects the exit status of its helper threads by passing
> the address of an int to pthread_join():
> 
> 	int status;
> 	...
> 	pthread_join(thread_t, (void **) &status);
> 
> pthread_join() stores a void pointer to the memory location. On 64-bit
> systems, a void pointer is wider than an int, so the store overruns the
> 4 bytes of space allocated on the stack for the integer and corrupts the
> adjacent stack. On our CHERI system, this caused a fault due to a
> capability bounds violation.
> 
> Fix this by introducing a helper that joins a thread through a void
> pointer and converts the result back to an integer, which is what the
> helper threads return.
> 
> While here, also fix the logic in disconnect_tag() if the helper thread
> creation failed. Previously, it would have joined a thread that was
> never created when pthread_create() failed.
> 
> Fixes: f595cf1242f3 ("selftests: Add nci suite")
> Signed-off-by: Chris Gellermann <christian.gellermann@codasip.com>

Reviewed-by: Simon Horman <horms@kernel.org>


      reply	other threads:[~2026-09-06 13:04 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-04  9:59 [PATCH] selftests/nci: Fix out-of-bounds store on thread join Chris Gellermann
2026-09-06 13:04 ` Simon Horman [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260906130430.GJ40544@horms.kernel.org \
    --to=horms@kernel.org \
    --cc=bongsu.jeon@samsung.com \
    --cc=christian.gellermann@codasip.com \
    --cc=david@ixit.cz \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=oe-linux-nfc@lists.linux.dev \
    --cc=shuah@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.