[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20171003224632.GF19750@localhost.localdomain>
Date: Tue, 3 Oct 2017 19:46:32 -0300
From: Marcelo Ricardo Leitner <marcelo.leitner@...il.com>
To: Jia-Ju Bai <baijiaju1990@....com>
Cc: davem@...emloft.net, herbert@...dor.apana.org.au,
nhorman@...driver.com, vyasevich@...il.com, luto@...nel.org,
kvalo@...eaurora.org, linux-crypto@...r.kernel.org,
netdev@...r.kernel.org, linux-sctp@...r.kernel.org,
linux-wireless@...r.kernel.org
Subject: Re: [PATCH V2] Fix a sleep-in-atomic bug in shash_setkey_unaligned
On Tue, Oct 03, 2017 at 07:33:08PM -0300, Marcelo Ricardo Leitner wrote:
> On Tue, Oct 03, 2017 at 10:25:22AM +0800, Jia-Ju Bai wrote:
> > The SCTP program may sleep under a spinlock, and the function call path is:
> > sctp_generate_t3_rtx_event (acquire the spinlock)
> > sctp_do_sm
> > sctp_side_effects
> > sctp_cmd_interpreter
> > sctp_make_init_ack
> > sctp_pack_cookie
> > crypto_shash_setkey
> > shash_setkey_unaligned
> > kmalloc(GFP_KERNEL)
>
> Are you sure this can happen?
> The host is not supposed to store any information when replying to an
> INIT packet (which generated the INIT_ACK listed above). That said,
> it's weird to see the timer function triggering so.
>
> Checking now, that code is dead actually:
> $ git grep -A 2 SCTP_CMD_GEN_INIT_ACK
> sm_sideeffect.c: case SCTP_CMD_GEN_INIT_ACK:
> sm_sideeffect.c- /* Generate an INIT ACK chunk.
> */
> sm_sideeffect.c- new_obj =
> sctp_make_init_ack(asoc, chunk, GFP_ATOMIC,
>
> Nobody is triggering a call to sctp_cmd_interpreter with
> SCTP_CMD_GEN_INIT_ACK command, which would generate the callstack
> above.
Nevertheless, the issue is real through other call paths.
Thanks,
Marcelo
Powered by blists - more mailing lists