Skip to content

Commit 50619db

Browse files
marceloleitnerdavem330
authored andcommitted
sctp: add size validation when walking chunks
The first chunk in a packet is ensured to be present at the beginning of sctp_rcv(), as a packet needs to have at least 1 chunk. But the second one, may not be completely available and ch->length can be over uninitialized memory. Fix here is by only trying to walk on the next chunk if there is enough to hold at least the header, and then proceed with the ch->length validation that is already there. Reported-by: Ilja Van Sprundel <[email protected]> Signed-off-by: Marcelo Ricardo Leitner <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 0c5dc07 commit 50619db

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

net/sctp/input.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1247,7 +1247,7 @@ static struct sctp_association *__sctp_rcv_walk_lookup(struct net *net,
12471247

12481248
ch = (struct sctp_chunkhdr *)ch_end;
12491249
chunk_num++;
1250-
} while (ch_end < skb_tail_pointer(skb));
1250+
} while (ch_end + sizeof(*ch) < skb_tail_pointer(skb));
12511251

12521252
return asoc;
12531253
}

0 commit comments

Comments
 (0)