diff --git a/fs/hmdfs/super.c b/fs/hmdfs/super.c index 52cc857f5e45f55a874d219d673b35cfcc97c73e..9b97e2f60e14530238d4e4e559c3d447829fd107 100644 --- a/fs/hmdfs/super.c +++ b/fs/hmdfs/super.c @@ -79,7 +79,13 @@ int hmdfs_parse_options(struct hmdfs_sb_info *sbi, const char *data) unsigned int user_id = 0; struct super_block *sb = sbi->sb; int err = 0; + size_t size = 0; + size = strlen(data); + if (size >= HMDFS_PAGE_SIZE) { + return -EINVAL; + } + options = kstrdup(data, GFP_KERNEL); if (data && !options) { err = -ENOMEM;