Re: [PKT_SCHED] act_gact: division by zero

2006-12-01 Thread David Miller
From: Nordlund Kim (Nokia-NET/Helsinki) [EMAIL PROTECTED]
Date: Thu, 30 Nov 2006 15:51:04 +0200 (EET)

 
 On Thu, 30 Nov 2006, ext Patrick McHardy wrote:
  I think it should reject an invalid configuration or handle
  the zero case correctly by not dividing.
 
 You are correct. Not returning -EINVAL, because someone might
 want to use the value zero in some future gact_prob algorithm?
 
 Signed-off-by: Kim Nordlund [EMAIL PROTECTED]

Applied, thanks Kim.
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PKT_SCHED] act_gact: division by zero

2006-11-30 Thread Patrick McHardy
Nordlund Kim (Nokia-NET/Helsinki) wrote:
 tc qdisc add dev eth1 handle : ingress
 tc filter add dev eth1 protocol ip parent : pref 99 basic \
flowid 1:1 action pass random determ drop 0
  ^
 the above cause a division by zero in the kernel on the first
 packet in.
 
 Signed-off-by: Kim Nordlund [EMAIL PROTECTED]
 
 diff -rub linux-2.6.19-orig/net/sched/act_gact.c linux/net/sched/act_gact.c
 --- linux-2.6.19-orig/net/sched/act_gact.c2006-11-29 23:57:37.0 
 +0200
 +++ linux/net/sched/act_gact.c2006-11-30 13:22:37.0 +0200
 @@ -111,7 +111,7 @@
   if (tb[TCA_GACT_PROB-1] != NULL) {
   struct tc_gact_p *p_parm = RTA_DATA(tb[TCA_GACT_PROB-1]);
   gact-tcfg_paction = p_parm-paction;
 - gact-tcfg_pval= p_parm-pval;
 + gact-tcfg_pval= p_parm-pval ? : 1;


I think it should reject an invalid configuration or handle
the zero case correctly by not dividing.
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PKT_SCHED] act_gact: division by zero

2006-11-30 Thread Nordlund Kim (Nokia-NET/Helsinki)

On Thu, 30 Nov 2006, ext Patrick McHardy wrote:
 I think it should reject an invalid configuration or handle
 the zero case correctly by not dividing.

You are correct. Not returning -EINVAL, because someone might
want to use the value zero in some future gact_prob algorithm?

Signed-off-by: Kim Nordlund [EMAIL PROTECTED]

diff -rub linux-2.6.19-orig/net/sched/act_gact.c linux/net/sched/act_gact.c
--- linux-2.6.19-orig/net/sched/act_gact.c  2006-11-29 23:57:37.0 
+0200
+++ linux/net/sched/act_gact.c  2006-11-30 15:33:12.0 +0200
@@ -48,14 +48,14 @@
 #ifdef CONFIG_GACT_PROB
 static int gact_net_rand(struct tcf_gact *gact)
 {
-   if (net_random() % gact-tcfg_pval)
+   if (!gact-tcfg_pval || net_random() % gact-tcfg_pval)
return gact-tcf_action;
return gact-tcfg_paction;
 }
 
 static int gact_determ(struct tcf_gact *gact)
 {
-   if (gact-tcf_bstats.packets % gact-tcfg_pval)
+   if (!gact-tcfg_pval || gact-tcf_bstats.packets % gact-tcfg_pval)
return gact-tcf_action;
return gact-tcfg_paction;
 }

-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PKT_SCHED] act_gact: division by zero

2006-11-30 Thread Patrick McHardy
Nordlund Kim (Nokia-NET/Helsinki) wrote:
 On Thu, 30 Nov 2006, ext Patrick McHardy wrote:
 
I think it should reject an invalid configuration or handle
the zero case correctly by not dividing.
 
 
 You are correct. Not returning -EINVAL, because someone might
 want to use the value zero in some future gact_prob algorithm?

That looks good, thanks.
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html