Re: [PATCH] net: sched: integer overflow fix

From: Eric Dumazet
Date: Fri Dec 21 2012 - 19:11:27 EST


On Fri, 2012-12-21 at 14:51 -0800, Eric Dumazet wrote:
> On Fri, 2012-12-21 at 21:39 +0100, Stefan Hasko wrote:
> > Fixed integer overflow in function htb_dequeue
> >
> > Signed-off-by: Stefan Hasko <hasko.stevo@xxxxxxxxx>
> > ---
> > net/sched/sch_htb.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/net/sched/sch_htb.c b/net/sched/sch_htb.c
> > index d2922c0..1bd3faa 100644
> > --- a/net/sched/sch_htb.c
> > +++ b/net/sched/sch_htb.c
> > @@ -919,7 +919,7 @@ ok:
> > q->now = ktime_to_ns(ktime_get());
> > start_at = jiffies;
> >
> > - next_event = q->now + 5 * NSEC_PER_SEC;
> > + next_event = q->now + (u32)5 * NSEC_PER_SEC;
> >
> > for (level = 0; level < TC_HTB_MAXDEPTH; level++) {
> > /* common case optimization - skip event handler quickly */
>
> But this patch is wrong !
>

Please resend your patch using something like

It will work much better.

diff --git a/net/sched/sch_htb.c b/net/sched/sch_htb.c
index d2922c0..51561ea 100644
--- a/net/sched/sch_htb.c
+++ b/net/sched/sch_htb.c
@@ -919,7 +919,7 @@ ok:
q->now = ktime_to_ns(ktime_get());
start_at = jiffies;

- next_event = q->now + 5 * NSEC_PER_SEC;
+ next_event = q->now + 5LLU * NSEC_PER_SEC;

for (level = 0; level < TC_HTB_MAXDEPTH; level++) {
/* common case optimization - skip event handler quickly */


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/