Messages in this thread Patch in this message | | | Subject | [PATCH] quota: paranoia: check quota tree root | From | Konstantin Khlebnikov <> | Date | Thu, 12 Feb 2015 12:36:49 +0300 |
| |
Root level in quota tree must be already allocated otherwise this block could be used for something else.
Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru> --- fs/quota/quota_tree.c | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/fs/quota/quota_tree.c b/fs/quota/quota_tree.c index d65877f..58efb83 100644 --- a/fs/quota/quota_tree.c +++ b/fs/quota/quota_tree.c @@ -349,6 +349,13 @@ static inline int dq_insert_tree(struct qtree_mem_dqinfo *info, struct dquot *dquot) { int tmp = QT_TREEOFF; + +#ifdef __QUOTA_QT_PARANOIA + if (info->dqi_blocks <= QT_TREEOFF) { + quota_error(dquot->dq_sb, "Quota tree root isn't allocated!"); + return -EIO; + } +#endif return do_insert_tree(info, dquot, &tmp, 0); }
| |