lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20141208.211459.962962459399411790.davem@davemloft.net>
Date:	Mon, 08 Dec 2014 21:14:59 -0500 (EST)
From:	David Miller <davem@...emloft.net>
To:	alexander.h.duyck@...hat.com
Cc:	netdev@...r.kernel.org
Subject: Re: [net PATCH] fib_trie: Fix /proc/net/fib_trie when
 CONFIG_IP_MULTIPLE_TABLES is not defined

From: Alexander Duyck <alexander.h.duyck@...hat.com>
Date: Tue, 02 Dec 2014 10:58:21 -0800

> In recent testing I had disabled CONFIG_IP_MULTIPLE_TABLES and as a result
> when I ran "cat /proc/net/fib_trie" the main trie was displayed multiple
> times.  I found that the problem line of code was in the function
> fib_trie_seq_next.  Specifically the line below caused the indexes to go in
> the opposite direction of our traversal:
> 
> 	h = tb->tb_id & (FIB_TABLE_HASHSZ - 1);
> 
> This issue was that the RT tables are defined such that RT_TABLE_LOCAL is ID
> 255, while it is located at TABLE_LOCAL_INDEX of 0, and RT_TABLE_MAIN is 254
> with a TABLE_MAIN_INDEX of 1.  This means that the above line will return 1
> for the local table and 0 for main.  The result is that fib_trie_seq_next
> will return NULL at the end of the local table, fib_trie_seq_start will
> return the start of the main table, and then fib_trie_seq_next will loop on
> main forever as h will always return 0.
> 
> The fix for this is to reverse the ordering of the two tables.  It has the
> advantage of making it so that the tables now print in the same order
> regardless of if multiple tables are enabled or not.  In order to make the
> definition consistent with the multiple tables case I simply masked the to
> RT_TABLE_XXX values by (FIB_TABLE_HASHSZ - 1).  This way the two table
> layouts should always stay consistent.
> 
> Fixes: 93456b6 ("[IPV4]: Unify access to the routing tables")
> Signed-off-by: Alexander Duyck <alexander.h.duyck@...hat.com>

Applied and queued up for -stable, thanks!
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ