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

Reply via email to