Stephen Hemminger writes:
> On Thu, 04 Apr 2019 22:44:33 +0200
> Toke Høiland-Jørgensen wrote:
>
>> Stephen Hemminger writes:
>>
>> > On Thu, 04 Apr 2019 15:01:33 +0200
>> > Toke Høiland-Jørgensen wrote:
>> >
>> >> static u8 cake_handle_diffserv(struct sk_buff *skb, u16 wash)
>> >> {
>>
On Thu, 04 Apr 2019 22:44:33 +0200
Toke Høiland-Jørgensen wrote:
> Stephen Hemminger writes:
>
> > On Thu, 04 Apr 2019 15:01:33 +0200
> > Toke Høiland-Jørgensen wrote:
> >
> >> static u8 cake_handle_diffserv(struct sk_buff *skb, u16 wash)
> >> {
> >> + int wlen = skb_network_offset(skb);
Stephen Hemminger writes:
> On Thu, 04 Apr 2019 15:01:33 +0200
> Toke Høiland-Jørgensen wrote:
>
>> static u8 cake_handle_diffserv(struct sk_buff *skb, u16 wash)
>> {
>> +int wlen = skb_network_offset(skb);
>
> In theory this could be negative, you should handle that?
> Rather than
On Thu, 04 Apr 2019 15:01:33 +0200
Toke Høiland-Jørgensen wrote:
> static u8 cake_handle_diffserv(struct sk_buff *skb, u16 wash)
> {
> + int wlen = skb_network_offset(skb);
In theory this could be negative, you should handle that?
Rather than calling may_pull() with a huge unsigned value.
There is not actually any guarantee that the IP headers are valid before we
access the DSCP bits of the packets. Fix this using the same approach taken
in sch_dsmark.
Reported-by: Kevin Darbyshire-Bryant
Signed-off-by: Toke Høiland-Jørgensen
---
net/sched/sch_cake.c | 11 +++
1 file