mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-09-22 09:34:56 +02:00
xfs: fix unreachable BIGTIME check in dquot flush validation
commit03866d130eupstream. The dqp->q_id == 0 check inside the XFS_DQTYPE_BIGTIME block is unreachable because root dquots return successfully earlier. Reject root dquots with XFS_DQTYPE_BIGTIME before that early return, preserving the intended validation and removing the unreachable condition. Found by Linux Verification Center (linuxtesting.org) with SVACE. Fixes:4ea1ff3b49("xfs: widen ondisk quota expiration timestamps to handle y2038+") Cc: stable@vger.kernel.org # v5.10+ Signed-off-by: Alexey Nepomnyashih <sdl@nppct.ru> Reviewed-by: "Darrick J. Wong" <djwong@kernel.org> Reviewed-by: Allison Henderson <achender@kernel.org> Signed-off-by: Carlos Maiolino <cem@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
9366186435
commit
dd8d0665cd
+8
-8
@@ -1241,6 +1241,14 @@ xfs_qm_dqflush_check(
|
||||
type != XFS_DQTYPE_PROJ)
|
||||
return __this_address;
|
||||
|
||||
/* bigtime flag should never be set on root dquots */
|
||||
if (dqp->q_type & XFS_DQTYPE_BIGTIME) {
|
||||
if (!xfs_has_bigtime(dqp->q_mount))
|
||||
return __this_address;
|
||||
if (dqp->q_id == 0)
|
||||
return __this_address;
|
||||
}
|
||||
|
||||
if (dqp->q_id == 0)
|
||||
return NULL;
|
||||
|
||||
@@ -1256,14 +1264,6 @@ xfs_qm_dqflush_check(
|
||||
!dqp->q_rtb.timer)
|
||||
return __this_address;
|
||||
|
||||
/* bigtime flag should never be set on root dquots */
|
||||
if (dqp->q_type & XFS_DQTYPE_BIGTIME) {
|
||||
if (!xfs_has_bigtime(dqp->q_mount))
|
||||
return __this_address;
|
||||
if (dqp->q_id == 0)
|
||||
return __this_address;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user