Эх сурвалжийг харах

SCTP: Fix sctp_addto_chunk() to add pad with correct length

At function sctp_addto_chunk(), it do pad before add payload to chunk if
chunk length is not 4-byte alignment. But it do pad with a bad length.
This patch fixed this probleam.

Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com>
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Wei Yongjun 18 жил өмнө
parent
commit
8d614ade51

+ 1 - 1
net/sctp/sm_make_chunk.c

@@ -1128,7 +1128,7 @@ void *sctp_addto_chunk(struct sctp_chunk *chunk, int len, const void *data)
 	void *target;
 	void *target;
 	void *padding;
 	void *padding;
 	int chunklen = ntohs(chunk->chunk_hdr->length);
 	int chunklen = ntohs(chunk->chunk_hdr->length);
-	int padlen = chunklen % 4;
+	int padlen = WORD_ROUND(chunklen) - chunklen;
 
 
 	padding = skb_put(chunk->skb, padlen);
 	padding = skb_put(chunk->skb, padlen);
 	target = skb_put(chunk->skb, len);
 	target = skb_put(chunk->skb, len);