Re: [PATCH net 1/1] sctp: stream: clear out_curr when freeing stream data
Ren Wei <[email protected]> Thu, 28 May 2026 17:07:26 +0800
| Newsgroups | org.kernel.vger.linux-sctp,org.kernel.vger.netdev |
|---|---|
| Message-ID | <[email protected]> |
On 5/28/26 15:51, Ren Wei wrote: > From: Yuqi Xu <[email protected]> > > out_curr caches the current outbound stream and points into the > stream->out storage. Once the stream tables are torn down, that > pointer is no longer valid and must not survive the teardown. > > sctp_stream_update() frees the old stream tables before installing > the new ones. If out_curr still points into the old outbound table, > later dequeue paths can continue from stale scheduler state instead > of falling back to the normal queue walk. > > Clear out_curr in sctp_stream_free(), which owns the lifetime of the > stream storage and covers every teardown caller. > > Fixes: 5bbbbe32a431 ("sctp: introduce stream scheduler foundations") > Cc: [email protected] > Reported-by: Yuan Tan <[email protected]> > Reported-by: Yifan Wu <[email protected]> > Reported-by: Juefei Pu <[email protected]> > Reported-by: Zhengchuan Liang <[email protected]> > Reported-by: Xin Liu <[email protected]> > Assisted-by: Codex:GPT-5.4 > Signed-off-by: Yuqi Xu <[email protected]> > Signed-off-by: Ren Wei <[email protected]> > --- > net/sctp/stream.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/net/sctp/stream.c b/net/sctp/stream.c > index c2247793c88b..207e0a77f9af 100644 > --- a/net/sctp/stream.c > +++ b/net/sctp/stream.c > @@ -186,6 +186,7 @@ void sctp_stream_free(struct sctp_stream *stream) > int i; > > sched->unsched_all(stream); > + stream->out_curr = NULL; > for (i = 0; i < stream->outcnt; i++) > sctp_stream_free_ext(stream, i); > genradix_free(&stream->out); Sorry for the duplicate posting. I accidentally sent this patch series twice. Please ignore the extra copy. Apologies for the noise. Best regards, Ren Wei