diff options
author | Richard Purdie <rpurdie@rpsys.net> | 2006-04-18 02:05:46 +0100 |
---|---|---|
committer | Richard Purdie <richard@tim.rpsys.net> | 2006-04-18 02:05:46 +0100 |
commit | 373d5e71833978fe3d91264d86857762bb92cfe2 (patch) | |
tree | 0c56caf25b684d7022ba023bcbdf8f963548d6e1 /fs/jffs2/dir.c | |
parent | 6e62e8c2c7b1e3387d73ecb3f7539314b7a9931e (diff) | |
download | kernel-common-373d5e71833978fe3d91264d86857762bb92cfe2.tar.gz kernel-common-373d5e71833978fe3d91264d86857762bb92cfe2.tar.bz2 kernel-common-373d5e71833978fe3d91264d86857762bb92cfe2.zip |
JFFS2: Return an error for long filenames
Return an error if a name is too long for JFFS2 rather than
corrupting data.
Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
Diffstat (limited to 'fs/jffs2/dir.c')
-rw-r--r-- | fs/jffs2/dir.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/jffs2/dir.c b/fs/jffs2/dir.c index 8bc7a5018e40..f92840a3a52f 100644 --- a/fs/jffs2/dir.c +++ b/fs/jffs2/dir.c @@ -78,6 +78,9 @@ static struct dentry *jffs2_lookup(struct inode *dir_i, struct dentry *target, D1(printk(KERN_DEBUG "jffs2_lookup()\n")); + if (target->d_name.len > JFFS2_MAX_NAME_LEN) + return ERR_PTR(-ENAMETOOLONG); + dir_f = JFFS2_INODE_INFO(dir_i); c = JFFS2_SB_INFO(dir_i->i_sb); |