Re: [PATCH] xfs_quota: allow create limit when user or group names beginning with digits

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I had to re-read the strtoul manpage (3 times) but yes, this looks right to
me.

(technically it should probably check for overflow etc but I suppose that is
outside the scope of this fix)

An xfstest would be good for this, although (as we discussed on IRC) I'm not
sure if it is OK for xfstests to add users & groups - no other test does
that today...

Reviewed-by: Eric Sandeen <sandeen@xxxxxxxxxx>

On 12/2/15 3:02 AM, Zorro Lang wrote:
> A normal user or group name allow beginning with digits, but xfs_quota can't
> create a limit for that user or group. The reason is 'strtoul' function only
> translate digits at the beginning.
> 
> There's a commit fd537fc50eeade63bbd2a66105f39d04a011a7f5, it try to fix
> "xfsprogs: xfs_quota allow user or group names beginning with digits". But
> it doesn't effect 'limit .... 12345678-user' command.
> 
> Signed-off-by: Zorro Lang <zlang@xxxxxxxxxx>
> ---
> 
> Hi Eric,
> 
> This problem from a bug of ours, I have left message to you, please
> help to check my simple patch. Thanks very much.
> 
> Hi Rich,
> 
> I don't understand why you fix commit fd537fc50eeade63bbd2a66105f39d04a011a7f5,
> but didn't fix this. Or is this a feature, not a bug?
> 
> I'm not so familiar with xfsprogs code, so if I'm wrong, please tell me;)
> 
> Thanks,
> Zorro
> 
>  libxcmd/input.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/libxcmd/input.c b/libxcmd/input.c
> index c505ab3..5a7dce3 100644
> --- a/libxcmd/input.c
> +++ b/libxcmd/input.c
> @@ -366,7 +366,7 @@ uid_from_string(
>  	char		*sp;
>  
>  	uid_long = strtoul(user, &sp, 10);
> -	if (sp != user) {
> +	if (sp != user && *sp == '\0') {
>  		if ((uid_long == ULONG_MAX && errno == ERANGE)
>  				|| (uid_long > (uid_t)-1))
>  			return -1;
> @@ -387,7 +387,7 @@ gid_from_string(
>  	char		*sp;
>  
>  	gid_long = strtoul(group, &sp, 10);
> -	if (sp != group) {
> +	if (sp != group && *sp == '\0') {
>  		if ((gid_long == ULONG_MAX && errno == ERANGE)
>  				|| (gid_long > (gid_t)-1))
>  			return -1;
> 

_______________________________________________
xfs mailing list
xfs@xxxxxxxxxxx
http://oss.sgi.com/mailman/listinfo/xfs



[Index of Archives]     [Linux XFS Devel]     [Linux Filesystem Development]     [Filesystem Testing]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux