ax.25: x.25: Remove the now superfluous sentinel elements from ctl_table array
authorJoel Granados <j.granados@samsung.com>
Wed, 1 May 2024 09:29:32 +0000 (11:29 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 3 May 2024 12:29:43 +0000 (13:29 +0100)
commit78a7b5dbc0609b8c395f754953a45db687cb05e6
tree1c8e0ff4a070663f45fe62e6995df88f19773c91
parente00e35e217c0fb5f614cdeb86f28fd3a1c9c936e
ax.25: x.25: Remove the now superfluous sentinel elements from ctl_table array

This commit comes at the tail end of a greater effort to remove the
empty elements at the end of the ctl_table arrays (sentinels) which will
reduce the overall build time size of the kernel and run time memory
bloat by ~64 bytes per sentinel (further information Link :
https://lore.kernel.org/all/ZO5Yx5JFogGi%2FcBo@bombadil.infradead.org/)

Avoid a buffer overflow when traversing the ctl_table by ensuring that
AX25_MAX_VALUES is the same as the size of ax25_param_table. This is
done with a BUILD_BUG_ON where ax25_param_table is defined and a
CONFIG_AX25_DAMA_SLAVE guard in the unnamed enum definition as well as
in the ax25_dev_device_up and ax25_ds_set_timer functions.

The overflow happened when the sentinel was removed from
ax25_param_table. The sentinel's data element was changed when
CONFIG_AX25_DAMA_SLAVE was undefined. This had no adverse effects as it
still stopped on the sentinel's null procname but needed to be addressed
once the sentinel was removed.

Signed-off-by: Joel Granados <j.granados@samsung.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/ax25.h
net/ax25/ax25_dev.c
net/ax25/ax25_ds_timer.c
net/ax25/sysctl_net_ax25.c
net/x25/sysctl_net_x25.c