From: PJ Waskiewicz <[EMAIL PROTECTED]>
Using strtoul with a base of 16 converts flowid 10 into 0x10, which makes
it flowid 16. This is interpreted by the kernel incorrectly, and causes
traffic flows above 9 to be classified into band 0 on multiband qdiscs.
This changes the base to 10, which will correctly parse input into the
proper hexidecimal value.
Signed-off-by: Peter P Waskiewicz Jr <[EMAIL PROTECTED]>
---
tc/tc_util.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/tc/tc_util.c b/tc/tc_util.c
index cdbae42..a277eac 100644
--- a/tc/tc_util.c
+++ b/tc/tc_util.c
@@ -65,7 +65,7 @@ int get_tc_classid(__u32 *h, const char *str)
maj = TC_H_UNSPEC;
if (strcmp(str, "none") == 0)
goto ok;
- maj = strtoul(str, &p, 16);
+ maj = strtoul(str, &p, 10);
if (p == str) {
maj = 0;
if (*p != ':')
@@ -76,7 +76,7 @@ int get_tc_classid(__u32 *h, const char *str)
return -1;
maj <<= 16;
str = p+1;
- min = strtoul(str, &p, 16);
+ min = strtoul(str, &p, 10);
if (*p != 0)
return -1;
if (min >= (1<<16))
--
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