Using size of "net//neigh/" is not clear, the use of stitching("net/" + /neigh") should be clearer.
Signed-off-by: Zhang Qilong <zhangqilo...@huawei.com> --- net/core/neighbour.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/net/core/neighbour.c b/net/core/neighbour.c index 8e39e28b0a8d..0474e73c4f9f 100644 --- a/net/core/neighbour.c +++ b/net/core/neighbour.c @@ -3623,7 +3623,14 @@ int neigh_sysctl_register(struct net_device *dev, struct neigh_parms *p, int i; struct neigh_sysctl_table *t; const char *dev_name_source; - char neigh_path[ sizeof("net//neigh/") + IFNAMSIZ + IFNAMSIZ ]; + + /* + * The path pattern is as follows + * "net/%s/neigh/%s", minusing one + * is for unnecessary terminators. + */ + char neigh_path[sizeof("net/") - 1 + IFNAMSIZ + + sizeof("/neigh/") + IFNAMSIZ]; char *p_name; t = kmemdup(&neigh_sysctl_template, sizeof(*t), GFP_KERNEL); -- 2.17.1