batman-adv: Fix possible buffer overflow in softif neigh list output
authorLinus Lüssing <linus.luessing@ascom.ch>
Fri, 18 Feb 2011 12:20:13 +0000 (12:20 +0000)
committerMarek Lindner <lindner_marek@yahoo.de>
Sat, 5 Mar 2011 11:50:13 +0000 (12:50 +0100)
commit9e0b33c221f1364e4d7562177a918eef8e85317a
tree817088eeeecc694cf9ad06a563321b2d11f2f0cd
parent43c70ad5ce5691cce24dae6610731694c0f3fcc8
batman-adv: Fix possible buffer overflow in softif neigh list output

When printing the soft interface table the number of entries in the
softif neigh list are first being counted and a fitting buffer
allocated. After that the softif neigh list gets locked again and
the buffer printed - which has the following two issues:

For one thing, the softif neigh list might have grown when reacquiring
the rcu lock, which results in writing outside of the allocated buffer.
Furthermore 31 Bytes are not enough for printing an entry with a vid
of more than 2 digits.

The manual buffering is unnecessary, we can safely print to the seq
directly during the rcu_read_lock().

Signed-off-by: Linus Lüssing <linus.luessing@ascom.ch>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
net/batman-adv/soft-interface.c