tc: don't accept qdisc 'handle' greater than ffff
since get_qdisc_handle() truncates the input value to 16 bit, return an error and prompt "invalid qdisc ID" in case input 'handle' parameter needs more than 16 bit to be stored. Signed-off-by: Davide Caratti <dcaratti@redhat.com> Acked-by: Phil Sutter <phil@nwl.cc>
This commit is contained in:
parent
003f0fde69
commit
087dec7fcf
|
|
@ -82,7 +82,7 @@ int get_qdisc_handle(__u32 *h, const char *str)
|
||||||
if (strcmp(str, "none") == 0)
|
if (strcmp(str, "none") == 0)
|
||||||
goto ok;
|
goto ok;
|
||||||
maj = strtoul(str, &p, 16);
|
maj = strtoul(str, &p, 16);
|
||||||
if (p == str)
|
if (p == str || maj >= (1 << 16))
|
||||||
return -1;
|
return -1;
|
||||||
maj <<= 16;
|
maj <<= 16;
|
||||||
if (*p != ':' && *p != 0)
|
if (*p != ':' && *p != 0)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue