xfs: check for a valid error_tag in errortag_add
authorDarrick J. Wong <darrick.wong@oracle.com>
Tue, 21 Jun 2016 01:53:28 +0000 (11:53 +1000)
committerDave Chinner <david@fromorbit.com>
Tue, 21 Jun 2016 01:53:28 +0000 (11:53 +1000)
Currently we don't check the error_tag when someone's trying to set up
error injection testing.  If userspace passes in a value we don't know
about, send back an error.  This will help xfstests to _notrun a test
that uses error injection to test things like log replay.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dave Chinner <david@fromorbit.com>
fs/xfs/xfs_error.c

index 88693a98fac5ed8261facecbd606cea0589c4d1f..355619ae5e3edec3dc1af8ff97d94fdf93333d4c 100644 (file)
@@ -61,6 +61,9 @@ xfs_errortag_add(int error_tag, xfs_mount_t *mp)
        int len;
        int64_t fsid;
 
+       if (error_tag >= XFS_ERRTAG_MAX)
+               return -EINVAL;
+
        memcpy(&fsid, mp->m_fixedfsid, sizeof(xfs_fsid_t));
 
        for (i = 0; i < XFS_NUM_INJECT_ERROR; i++)  {