Re: [PATCH] staging: lustre: lustre: libcfs: workitem.c: Cleaning up missing null-terminate after strncpy call

2014-08-16 Thread Kees Cook
On Sat, Aug 16, 2014 at 4:14 PM, Rickard Strandqvist
 wrote:
> 2014-08-12 16:58 GMT+02:00 Kees Cook :
>> On Sat, Aug 9, 2014 at 4:46 PM, Rickard Strandqvist
>>  wrote:
>>> Added a guaranteed null-terminate after call to strncpy.
>>>
>>> Signed-off-by: Rickard Strandqvist 
>>> ---
>>>  drivers/staging/lustre/lustre/libcfs/workitem.c |1 +
>>>  1 file changed, 1 insertion(+)
>>>
>>> diff --git a/drivers/staging/lustre/lustre/libcfs/workitem.c 
>>> b/drivers/staging/lustre/lustre/libcfs/workitem.c
>>> index 0a03bf7..60326f2 100644
>>> --- a/drivers/staging/lustre/lustre/libcfs/workitem.c
>>> +++ b/drivers/staging/lustre/lustre/libcfs/workitem.c
>>> @@ -365,6 +365,7 @@ cfs_wi_sched_create(char *name, struct cfs_cpt_table 
>>> *cptab,
>>> return -ENOMEM;
>>>
>>> strncpy(sched->ws_name, name, CFS_WS_NAME_LEN);
>>> +   sched->ws_name[CFS_WS_NAME_LEN - 1] = '\0';
>>> sched->ws_cptab = cptab;
>>> sched->ws_cpt = cpt;
>>
>> This seems like a place for strlcpy instead?
>>
>> -Kees
>>
>> --
>> Kees Cook
>> Chrome OS Security
>
> Hi Kees
>
> Sure, strlcpy is preferable in many ways if we only can guarantee that
> it is safe.
> I have seldom received so much criticism when I start switching to
> strlcpy, although much of it was justified :)
> Even Linus was getting into the debate.  See more:
>
> https://plus.google.com/111049168280159033135/posts/1amLbuhWbh5
>
>
> I do this only when I'm sure it will not cause any other problems.
> But if you or anyone else can guarantee that in this case, so I'd make
> a new patch with strlcpy.

Ah right, yeah, that limitation is weird. In that case, for your original patch:

Reviewed-by: Kees Cook 

-Kees


-- 
Kees Cook
Chrome OS Security
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH] staging: lustre: lustre: libcfs: workitem.c: Cleaning up missing null-terminate after strncpy call

2014-08-16 Thread Rickard Strandqvist
2014-08-12 16:58 GMT+02:00 Kees Cook :
> On Sat, Aug 9, 2014 at 4:46 PM, Rickard Strandqvist
>  wrote:
>> Added a guaranteed null-terminate after call to strncpy.
>>
>> Signed-off-by: Rickard Strandqvist 
>> ---
>>  drivers/staging/lustre/lustre/libcfs/workitem.c |1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/staging/lustre/lustre/libcfs/workitem.c 
>> b/drivers/staging/lustre/lustre/libcfs/workitem.c
>> index 0a03bf7..60326f2 100644
>> --- a/drivers/staging/lustre/lustre/libcfs/workitem.c
>> +++ b/drivers/staging/lustre/lustre/libcfs/workitem.c
>> @@ -365,6 +365,7 @@ cfs_wi_sched_create(char *name, struct cfs_cpt_table 
>> *cptab,
>> return -ENOMEM;
>>
>> strncpy(sched->ws_name, name, CFS_WS_NAME_LEN);
>> +   sched->ws_name[CFS_WS_NAME_LEN - 1] = '\0';
>> sched->ws_cptab = cptab;
>> sched->ws_cpt = cpt;
>
> This seems like a place for strlcpy instead?
>
> -Kees
>
> --
> Kees Cook
> Chrome OS Security

Hi Kees

Sure, strlcpy is preferable in many ways if we only can guarantee that
it is safe.
I have seldom received so much criticism when I start switching to
strlcpy, although much of it was justified :)
Even Linus was getting into the debate.  See more:

https://plus.google.com/111049168280159033135/posts/1amLbuhWbh5


I do this only when I'm sure it will not cause any other problems.
But if you or anyone else can guarantee that in this case, so I'd make
a new patch with strlcpy.


Kind regards

Rickard Strandqvist
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH] staging: lustre: lustre: libcfs: workitem.c: Cleaning up missing null-terminate after strncpy call

2014-08-12 Thread Kees Cook
On Sat, Aug 9, 2014 at 4:46 PM, Rickard Strandqvist
 wrote:
> Added a guaranteed null-terminate after call to strncpy.
>
> Signed-off-by: Rickard Strandqvist 
> ---
>  drivers/staging/lustre/lustre/libcfs/workitem.c |1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/staging/lustre/lustre/libcfs/workitem.c 
> b/drivers/staging/lustre/lustre/libcfs/workitem.c
> index 0a03bf7..60326f2 100644
> --- a/drivers/staging/lustre/lustre/libcfs/workitem.c
> +++ b/drivers/staging/lustre/lustre/libcfs/workitem.c
> @@ -365,6 +365,7 @@ cfs_wi_sched_create(char *name, struct cfs_cpt_table 
> *cptab,
> return -ENOMEM;
>
> strncpy(sched->ws_name, name, CFS_WS_NAME_LEN);
> +   sched->ws_name[CFS_WS_NAME_LEN - 1] = '\0';
> sched->ws_cptab = cptab;
> sched->ws_cpt = cpt;

This seems like a place for strlcpy instead?

-Kees

-- 
Kees Cook
Chrome OS Security
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel