Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4408ea41 authored by Jan Kara's avatar Jan Kara
Browse files

quota: Fix possible oops in __dquot_initialize()



When quotaon(8) races with __dquot_initialize() or dqget() fails because
of EIO, ENOSPC, or similar error, we could possibly dereference NULL pointer
in inode->i_dquot[cnt]. Add proper checking.

Reported-by: default avatarDmitry Monakhov <dmonakhov@gmail.com>
Signed-off-by: default avatarJan Kara <jack@suse.cz>
parent a4c18ad2
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -1386,6 +1386,9 @@ static void __dquot_initialize(struct inode *inode, int type)
		/* Avoid races with quotaoff() */
		if (!sb_has_quota_active(sb, cnt))
			continue;
		/* We could race with quotaon or dqget() could have failed */
		if (!got[cnt])
			continue;
		if (!inode->i_dquot[cnt]) {
			inode->i_dquot[cnt] = got[cnt];
			got[cnt] = NULL;