From c04152e873b3e6ff4ca4bdde18b10e99fb43aa92 Mon Sep 17 00:00:00 2001 From: Andrew Chant Date: Wed, 8 Feb 2017 15:33:48 -0800 Subject: sdcardfs: limit stacking depth Limit filesystem stacking to prevent stack overflow. Bug: 32761463 Change-Id: I8b1462b9c0d6c7f00cf110724ffb17e7f307c51e Signed-off-by: Andrew Chant --- fs/sdcardfs/main.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'fs/sdcardfs') diff --git a/fs/sdcardfs/main.c b/fs/sdcardfs/main.c index fe7507d41..bf3d3ab93 100755 --- a/fs/sdcardfs/main.c +++ b/fs/sdcardfs/main.c @@ -281,6 +281,13 @@ static int sdcardfs_read_super(struct vfsmount *mnt, struct super_block *sb, atomic_inc(&lower_sb->s_active); sdcardfs_set_lower_super(sb, lower_sb); + sb->s_stack_depth = lower_sb->s_stack_depth + 1; + if (sb->s_stack_depth > FILESYSTEM_MAX_STACK_DEPTH) { + pr_err("sdcardfs: maximum fs stacking depth exceeded\n"); + err = -EINVAL; + goto out_sput; + } + /* inherit maxbytes from lower file system */ sb->s_maxbytes = lower_sb->s_maxbytes; -- cgit v1.2.3