[PATCH] xfsdump: fill in missing strerror() call

Nigel Tamplin ntamplin at codefaber.co.uk
Wed Dec 26 22:19:44 CST 2012


On 27/12/12 03:36, Alex Elder wrote:
> On 12/26/2012 09:16 PM, Nigel Tamplin wrote:
>    
>> On 26/12/12 22:25, Alex Elder wrote:
>>      
>>> Nigel Tamplin reported getting a seg fault in xfsrestore when a path
>>> name was too long.
>>>
>>> Based on the surrounding code, I'm sure strerror(errno) was the
>>> intended final argument to this call.  This bug has been there
>>> since the code was first committed.
>>>
>>> Signed-off-by: Alex Elder<elder at inktank.com>
>>> Reported-by: Nigel Tamplin<ntamplin at codefaber.co.uk>
>>> ---
>>>    restore/content.c |    3 ++-
>>>    1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/restore/content.c b/restore/content.c
>>> index edd00ed..4e55a76 100644
>>> --- a/restore/content.c
>>> +++ b/restore/content.c
>>> @@ -7799,7 +7799,8 @@ restore_spec( filehdr_t *fhdrp, rv_t *rvp, char
>>> *path )
>>>                          "%s ino %llu %s: %s: discarding\n"),
>>>                          printstr,
>>>                          fhdrp->fh_stat.bs_ino,
>>> -                      path );
>>> +                      path,
>>> +                      strerror( errno ));
>>>                    ( void )close( sockfd );
>>>                    return BOOL_TRUE;
>>>                }
>>>
>>>        
>>
>> Hi Alex,
>>
>> You say...
>>      
>>> Based on the surrounding code, I'm sure strerror(errno) was the
>>>        
>> intended final argument to this call.
>>
>> I'm not so sure.
>>
>> The condition is comparing path length to max length, not detecting a
>> previously failed system call (like the surrounding code)- as such I
>> don't think the value of errno is relevant and the fix should be the
>> removal of one of the format specifiers instead of the addition of the
>> argument.
>>      
> Next time I'll actually read the code.
>
> Yes, I fully concur with your analysis.
>
> Do you want to submit a patch?  Or do you want me to re-do mine?
>
> 					-Alex
>    

Can you re-do yours?

Thanks,

Nigel



More information about the xfs mailing list