xfs
[Top] [All Lists]

Re: [PATCH] xfs_quota: avoid segfault when report -h on non-existent pat

To: sandeen@xxxxxxxxxx
Subject: Re: [PATCH] xfs_quota: avoid segfault when report -h on non-existent path
From: Jeff Liu <jeff.liu@xxxxxxxxxx>
Date: Wed, 19 Mar 2014 09:47:01 +0800
Cc: Eryu Guan <eguan@xxxxxxxxxx>, xfs@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <53287D1E.2010409@xxxxxxxxxx>
References: <1395160746-26654-1-git-send-email-eguan@xxxxxxxxxx> <53287D1E.2010409@xxxxxxxxxx>
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.1.0
On 03/19 2014 01:06 AM, Eric Sandeen wrote:
> On 3/18/14, 11:39 AM, Eryu Guan wrote:
>> Command xfs_quota -xc "report -h" /nosuchdir would get segfault, fix
>> that by checking fs_path first before dereferencing it.
>>
>> Cc: Eric Sandeen <esandeen@xxxxxxxxxx>
>> Signed-off-by: Eryu Guan <eguan@xxxxxxxxxx>
>> ---
>>  quota/report.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/quota/report.c b/quota/report.c
>> index 70894a2..d486524 100644
>> --- a/quota/report.c
>> +++ b/quota/report.c
>> @@ -624,7 +624,7 @@ report_f(
>>              if (flags & ALL_MOUNTS_FLAG)
>>                      report_any_type(fp, form, type, NULL,
>>                                      lower, upper, flags);
>> -            else if (fs_path->fs_flags & FS_MOUNT_POINT)
>> +            else if (fs_path && fs_path->fs_flags & FS_MOUNT_POINT)
>>                      report_any_type(fp, form, type, fs_path->fs_dir,
>>                                      lower, upper, flags);
>>      } else while (argc > optind) {
>>
> 
> I think this is ok; state_f does the same thing.
> 
> but others don't; enable_f, disable_f, off_f etc.
> 
> Also this seems to be a slight regression since v3.1.8 or so, let me double
> check that and see if we need to fix something more general.

I once posted a same patch a few months ago, Christoph pointed out a general
solution at below link:
http://www.spinics.net/lists/xfs/msg23777.html


Thanks,
-Jeff

<Prev in Thread] Current Thread [Next in Thread>