Subject: Re: [PATCH] drivers/net/wireless/iwlegacy: use strlcpy instead of strncpy

From: Chen Gang F T <[email-masked]>
Date: Sun, 20 Jan 2013 18:45:17 +0800

oh, sorry, it is my fault.

  according to fill_write_buffer in fs/sysfs/file.c,
    we can assume that 'const char *buf' must be '\0' based string.

  please skip original reply.

gchen.

于 2013年01月20日 17:31, Chen Gang 写道:
> Hello all:
> 
>   sorry, after checking the details:
>     I think this patch is incorrect.
>       we can not assume that the parameter "char *buf" is terminated by '\0'
>       so we should only use strlcpy instead of strncpy, without touching 'min(...'
> 
>   since it is already integrated into main branch (at least, in next-20130118).
>     I should send additional patch to fix it.
> 
>   please help to check, thanks.
> 
> 
> gchen.
> 
> 
> 于 2013年01月07日 12:42, Chen Gang 写道:
>>
>>   The fields must be null-terminated, or simple_strtoul will cause issue.
>>
>> Signed-off-by: Chen Gang <[email-masked]>
>> ---
>>  drivers/net/wireless/iwlegacy/3945-mac.c |    2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/net/wireless/iwlegacy/3945-mac.c b/drivers/net/wireless/iwlegacy/3945-mac.c
>> index d604b40..3726cd6 100644
>> --- a/drivers/net/wireless/iwlegacy/3945-mac.c
>> +++ b/drivers/net/wireless/iwlegacy/3945-mac.c
>> @@ -3273,7 +3273,7 @@ il3945_store_measurement(struct device *d, struct device_attribute *attr,
>>  
>>  	if (count) {
>>  		char *p = buffer;
>> -		strncpy(buffer, buf, min(sizeof(buffer), count));
>> +		strlcpy(buffer, buf, sizeof(buffer));
>>  		channel = simple_strtoul(p, NULL, 0);
>>  		if (channel)
>>  			params.channel = channel;
>>
> 
> 

-- 
Chen Gang

Flying Transformer