Re: [PATCH net] sctp: fix the issue sctp requeue auth chunk incorrectly
From: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Date: 2016-07-30 13:21:18
Also in:
linux-sctp
On Sat, Jul 30, 2016 at 01:58:35PM +0800, Xin Long wrote:
sctp needs to queue auth chunk back when we know that we are going
to generate another segment. But commit f1533cce60d1 ("sctp: fix
panic when sending auth chunks") requeues the last chunk processed
which is probably not the auth chunk.
It causes panic when calculating the MAC in sctp_auth_calculate_hmac(),
as the incorrect offset of the auth chunk in skb->data.
This fix is to requeue it by using packet->auth.
Fixes: f1533cce60d1 ("sctp: fix panic when sending auth chunks")
Signed-off-by: Xin Long <lucien.xin@gmail.com>Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
quoted hunk ↗ jump to hunk
--- net/sctp/output.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)diff --git a/net/sctp/output.c b/net/sctp/output.c index 7425f6c..1f1682b 100644 --- a/net/sctp/output.c +++ b/net/sctp/output.c@@ -610,7 +610,8 @@ int sctp_packet_transmit(struct sctp_packet *packet, gfp_t gfp) /* We will generate more packets, so re-queue * auth chunk. */ - list_add(&chunk->list, &packet->chunk_list); + list_add(&packet->auth->list, + &packet->chunk_list); } else { sctp_chunk_free(packet->auth); packet->auth = NULL;-- 2.1.0 -- To unsubscribe from this list: send the line "unsubscribe linux-sctp" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html