diff --git a/fs/jffs2/xattr.c b/fs/jffs2/xattr.c index b2d6072f34af6bcd7c55ecb0112ebfefb1baf4ab..b79ba11dfbe10d36b8d70ee85bdec22379904a7c 100644 --- a/fs/jffs2/xattr.c +++ b/fs/jffs2/xattr.c @@ -1146,6 +1146,9 @@ int do_jffs2_setxattr(struct inode *inode, int xprefix, const char *xname, return rc; request = PAD(sizeof(struct jffs2_raw_xattr) + strlen(xname) + 1 + size); + if (request > c->sector_size - c->cleanmarker_size) + return -ERANGE; + rc = jffs2_reserve_space(c, request, &length, ALLOC_NORMAL, JFFS2_SUMMARY_XATTR_SIZE); if (rc) {