Re: [PATCH] s390: scsi: zfcp_aux.c: Cleaning up missing null-terminate in conjunction with strncpy

From: Rickard Strandqvist
Date: Tue Jul 29 2014 - 17:35:55 EST


2014-07-28 16:25 GMT+02:00 Steffen Maier <maier@xxxxxxxxxxxxxxxxxx>:
> On 07/26/2014 04:36 PM, Rickard Strandqvist wrote:
>>
>> Replacing strncpy with strlcpy to avoid strings that lacks null terminate.
>>
>> Signed-off-by: Rickard Strandqvist
>> <rickard_strandqvist@xxxxxxxxxxxxxxxxxx>
>> ---
>> drivers/s390/scsi/zfcp_aux.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/s390/scsi/zfcp_aux.c b/drivers/s390/scsi/zfcp_aux.c
>> index 8004b07..a23ba76 100644
>> --- a/drivers/s390/scsi/zfcp_aux.c
>> +++ b/drivers/s390/scsi/zfcp_aux.c
>> @@ -101,7 +101,7 @@ static void __init zfcp_init_device_setup(char
>> *devstr)
>> token = strsep(&str, ",");
>> if (!token || strlen(token) >= ZFCP_BUS_ID_SIZE)
>> goto err_out;
>
>
> Due to the check for strlen(token) >= ZFCP_BUS_ID_SIZE we should be safe
> even with strlcpy because we would reject any user string that does not fit
> into busid including the trailing zero character.
>
> Since it works either way, we can change it though,
>
> Acked-by: Steffen Maier <maier@xxxxxxxxxxxxxxxxxx>
>
>
>> - strncpy(busid, token, ZFCP_BUS_ID_SIZE);
>> + strlcpy(busid, token, ZFCP_BUS_ID_SIZE);
>>
>> token = strsep(&str, ",");
>> if (!token || kstrtoull(token, 0, (unsigned long long *) &wwpn))
>>

Hi

Always fun to get a patch included :)

It would be possible to change it to:

if (!token || strlcpy(busid, token, ZFCP_BUS_ID_SIZE) >= ZFCP_BUS_ID_SIZE)
goto err_out;


But I doubt if this does not degrade the clarity quite a lot however :-/

But tell me otherwise if you want a patch like that instead :-)


Kind regards
Rickard Strandqvist
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/