From: Stephen Hemminger Date: Tue, 12 Feb 2013 19:41:46 +0000 (-0800) Subject: ip: handle flush with table > 2^31 X-Git-Tag: v3.8.0~3^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=caae16b3b8f7ed609c701d732c03076187780644;p=thirdparty%2Fiproute2.git ip: handle flush with table > 2^31 Fixes Debian bug #700434 Need to table id in filter to be unsigned to avoid conversion to -1 The documentation for "ip" suggests that, when using multiple routing tables, the table ID can be an arbitrary 32 bit number. I've been writing a script that calculates a table Id based on an IP addresses and sets up tables accordingly based on it. This seems to work for everything I've tried except "ip route flush". If you specify a table to flush with an ID over 2^31, it flushes all IPv4 routing tables. For example: Will delete all routing tables, including the default one. Needless to say, this is quite annoying. I think this is an upstream bug, but your opinions will be greatly appreciated. --- diff --git a/ip/iproute.c b/ip/iproute.c index 5dc443716..2c2a33193 100644 --- a/ip/iproute.c +++ b/ip/iproute.c @@ -92,7 +92,7 @@ static void usage(void) static struct { - int tb; + unsigned int tb; int cloned; int flushed; char *flushb;