diff --git a/fs/jffs2/xattr.c b/fs/jffs2/xattr.c index 1e65b7b06c226a6b5f8d41a2df31b837abc2c509..17ac0d0887590d1e61277d5a6d4cfc8bb9539d46 100644 --- a/fs/jffs2/xattr.c +++ b/fs/jffs2/xattr.c @@ -1150,6 +1150,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) {