xfs: don't overflow quota ID when initializing dqblk
PATCH 1/1 xfs: don't overflow quota ID when initializing dqblk
Quota IDs are unsigned, and so we can pass in values up to 2^32-1. But if we try to initialize a block containing values over MAX_INT, curid will overflow and assert.
curid holds a quota ID, so give it the proper xfs_dqid_t type (and remove the now-impossible ASSERT).
---
fs/xfs/xfs_dquot.c +2 -2
@@ -232,7 +232,8 @@ xfs_qm_init_dquot_blk( {struct xfs_quotainfo *q = mp->m_quotainfo;xfs_dqblk_t *d; -int curid, i; +xfs_dqid_t curid; +int i;ASSERT (tp);ASSERT (xfs_buf_islocked (bp));
@@ -243,7 +244,6 @@ xfs_qm_init_dquot_blk(* ID of the first dquot in the block - id's are zero based. */ curid = id - (id % q->qi_dqperchunk); -ASSERT (curid >=0 );memset (d,0 ,BBTOB (q->qi_dqchunklen));for (i =0 ; i < q->qi_dqperchunk; i++, d++, curid++) { d->dd_diskdq.d_magic =cpu_to_be16 (XFS_DQUOT_MAGIC );
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs
Quoted 9 lines · Eric Sandeen
Quota IDs are unsigned, and so we can pass in values up to 2^32-1. But if we try to initialize a block containing values over
MAX_INT, curid will overflow and assert.curid holds a quota ID, so give it the proper
xfs_dqid_ttype (and remove the now-impossible ASSERT).Signed-off-by Eric Sandeen <[email protected]>---
Quoted 24 lines
fs/xfs/xfs_dquot.c +2
-2@@ -232,7 +232,8 @@ xfs_qm_init_dquot_blk( {struct xfs_quotainfo *q = mp->m_quotainfo;xfs_dqblk_t *d; -int curid, i; +xfs_dqid_t curid; +int i;ASSERT (tp);ASSERT (xfs_buf_islocked (bp));@@ -243,7 +244,6 @@ xfs_qm_init_dquot_blk(* ID of the first dquot in the block - id's are zero based. */ curid = id - (id % q->qi_dqperchunk); -ASSERT (curid >=0 );memset (d,0 ,BBTOB (q->qi_dqchunklen));for (i =0 ; i < q->qi_dqperchunk; i++, d++, curid++) { d->dd_diskdq.d_magic =cpu_to_be16 (XFS_DQUOT_MAGIC );
Quoted 4 lines
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs