Patch "NET: Fix /proc/net/arp for AX.25" has been added to the 4.9-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
NET: Fix /proc/net/arp for AX.25
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
net-fix-proc-net-arp-for-ax.25.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Thu Jun 15 11:12:23 CEST 2017
From: Ralf Baechle <[email protected]>
Date: Tue, 23 May 2017 21:53:37 -0400
Subject: NET: Fix /proc/net/arp for AX.25
From: Ralf Baechle <[email protected]>
[ Upstream commit 4872e57c812dd312bf8193b5933fa60585cda42f ]
When sending ARP requests over AX.25 links the hwaddress in the neighbour cache are not getting initialized. For such an incomplete arp entry ax2asc2 will generate an empty string resulting in /proc/net/arp output like the following:
$ cat /proc/net/arp IP address HW type Flags HW address Mask Device 192.168.122.1 0x1 0x2 52:54:00:00:5d:5f * ens3 172.20.1.99 0x3 0x0 * bpq0
The missing field will confuse the procfs parsing of arp(8) resulting in incorrect output for the device such as the following:
$ arp Address HWtype HWaddress Flags Mask Iface gateway ether 52:54:00:00:5d:5f C ens3 172.20.1.99 (incomplete) ens3
This changes the content of /proc/net/arp to:
$ cat /proc/net/arp IP address HW type Flags HW address Mask Device 172.20.1.99 0x3 0x0 * * bpq0 192.168.122.1 0x1 0x2 52:54:00:00:5d:5f * ens3
To do so it change ax2asc to put the string "*" in buf for a NULL address argument. Finally the HW address field is left aligned in a 17 character field (the length of an ethernet HW address in the usual hex notation) for readability.
--- net/ipv4/arp.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)
net/ipv4/arp.c +6 -6
@@ -1263,7 +1263,7 @@ void __init arp_init(void)/* * ax25 -> ASCII conversion */ -static char *ax2asc2 (ax25_address *a,char *buf) +static void ax2asc2 (ax25_address *a,char *buf) {char c, *s;int n;
@@ -1285,10 +1285,10 @@ static char *ax2asc2(ax25_address *a, ch *s++ = n +'0' ; *s++ ='\0' ; -if (*buf =='\0' || *buf =='-' ) -return "*" ; - - return buf; +if (*buf =='\0' || *buf =='-' ) { + buf[0 ] ='*' ; + buf[1 ] ='\0' ; + } }#endif /* CONFIG_AX25 */
@@ -1322,7 +1322,7 @@ static void arp_format_neigh_entry(struc }#endif sprintf (tbuf,"%pI4" , n->primary_key); -seq_printf (seq,"%-16s 0x%-10x0x%-10x%s * %s\n" , +seq_printf (seq,"%-16s 0x%-10x0x%-10x%-17s * %s\n" , tbuf, hatype,arp_state_to_flags (n), hbuffer, dev->name);read_unlock (&n->lock); }
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/net-fix-proc-net-arp-for-ax.25.patchqueue-4.9/net-mkiss-fix-panic.patch