Description of problem:
xfs_quota allows higher than 32-bit projid to be set simply by overflowing the integer.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Create and mount projid32bit enabled fs
mkfs.xfs -i projid32bit=1 /dev/sda2
mount -o pquota /dev/sda2 /media
2. Try setting higher than 32-bit projid with xfs_quota
xfs_quota -x -c 'project -s -p /media/file 5123456789' /dev/sda2
3. Check the projid
xfs_io -r -c lsproj /media/file
The xfs_quota command succeeds and xfs_io reports projid to be 828489493 = 5123456789 - 2**32.
The xfs_quota fails to set the higher than 32-bit projid.
This is easily reproducible with xfstests test case no. 244 (the last test fails).
This isn't a kernel problem - the ioctl can only pass a 32 bit value. The bug will be in the userspace xfs_quota command, and it looks like it was fixed quite some time ago upstream by commit 272f4db5 ("xfsprogs: validate string -> number conversion").
Ok, the commit dave points at is easily applied & tested, I'm happy to respin it if we do get a blocker approved.
xfsprogs-3.1.1-10.el6 building now w/ this fix.
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.