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

Reply via email to