From: Al Viro Date: Mon, 4 May 2015 01:30:27 +0000 (-0400) Subject: namei: we never need more than MAXSYMLINKS entries in nd->stack X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=e269f2a73f92b40169c4229289587b901a00b244;p=openwrt%2Fstaging%2Fblogic.git namei: we never need more than MAXSYMLINKS entries in nd->stack The only reason why we needed one more was that purely nested MAXSYMLINKS symlinks could lead to path_init() using that many entries in addition to nd->stack[0] which it left unused. That can't happen now - path_init() starts with entry 0 (and trailing_symlink() is called only when we'd already encountered one symlink, so no more than MAXSYMLINKS-1 are left). Signed-off-by: Al Viro --- diff --git a/fs/namei.c b/fs/namei.c index d12b16c13f0c..b939f488bc6f 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -528,7 +528,7 @@ static void restore_nameidata(struct nameidata *nd) static int __nd_alloc_stack(struct nameidata *nd) { - struct saved *p = kmalloc((MAXSYMLINKS + 1) * sizeof(struct saved), + struct saved *p = kmalloc(MAXSYMLINKS * sizeof(struct saved), GFP_KERNEL); if (unlikely(!p)) return -ENOMEM;