diff options
Diffstat (limited to 'fs/isofs/namei.c')
-rw-r--r-- | fs/isofs/namei.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/isofs/namei.c b/fs/isofs/namei.c index 344b247bc29a..8299889a835e 100644 --- a/fs/isofs/namei.c +++ b/fs/isofs/namei.c | |||
@@ -111,6 +111,13 @@ isofs_find_entry(struct inode *dir, struct dentry *dentry, | |||
111 | 111 | ||
112 | dlen = de->name_len[0]; | 112 | dlen = de->name_len[0]; |
113 | dpnt = de->name; | 113 | dpnt = de->name; |
114 | /* Basic sanity check, whether name doesn't exceed dir entry */ | ||
115 | if (de_len < dlen + sizeof(struct iso_directory_record)) { | ||
116 | printk(KERN_NOTICE "iso9660: Corrupted directory entry" | ||
117 | " in block %lu of inode %lu\n", block, | ||
118 | dir->i_ino); | ||
119 | return 0; | ||
120 | } | ||
114 | 121 | ||
115 | if (sbi->s_rock && | 122 | if (sbi->s_rock && |
116 | ((i = get_rock_ridge_filename(de, tmpname, dir)))) { | 123 | ((i = get_rock_ridge_filename(de, tmpname, dir)))) { |