2014-07-26 14:35:34

by Rickard Strandqvist

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

Replacing strncpy with strlcpy to avoid strings that lacks null terminate.

Signed-off-by: Rickard Strandqvist <[email protected]>
---
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;
- 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))
--
1.7.10.4


2014-07-28 14:25:33

by Steffen Maier

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

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 <[email protected]>
> ---
> 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 <[email protected]>

> - 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))
>

--
Mit freundlichen Gr??en / Kind regards
Steffen Maier

Linux on System z Development

IBM Deutschland Research & Development GmbH
Vorsitzende des Aufsichtsrats: Martina Koederitz
Geschaeftsfuehrung: Dirk Wittkopp
Sitz der Gesellschaft: Boeblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294

2014-07-29 21:35:49

by Rickard Strandqvist

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

2014-07-28 16:25 GMT+02:00 Steffen Maier <[email protected]>:
> 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
>> <[email protected]>
>> ---
>> 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 <[email protected]>
>
>
>> - 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