Patchwork drivers/net/wireless/iwlegacy: use strlcpy instead of strncpy

login
register
mail settings
Submitter Chen Gang
Date Jan. 7, 2013, 4:42 a.m.
Message ID <50EA5246.8060206@asianux.com>
Download mbox | patch
Permalink /patch/209853/
State Not Applicable
Delegated to: David Miller
Headers show

Comments

Chen Gang - Jan. 7, 2013, 4:42 a.m.
The fields must be null-terminated, or simple_strtoul will cause issue.

Signed-off-by: Chen Gang <gang.chen@asianux.com>
---
 drivers/net/wireless/iwlegacy/3945-mac.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Stanislaw Gruszka - Jan. 7, 2013, 11:17 a.m.
On Mon, Jan 07, 2013 at 12:42:46PM +0800, Chen Gang wrote:
> 
>   The fields must be null-terminated, or simple_strtoul will cause issue.
> 
> Signed-off-by: Chen Gang <gang.chen@asianux.com>

ACK

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Chen Gang F T - Jan. 10, 2013, 8:48 a.m.
于 2013年01月07日 19:17, Stanislaw Gruszka 写道:
>> > Signed-off-by: Chen Gang <gang.chen@asianux.com>
> ACK

  thank you very much.

  :-)
Chen Gang - Jan. 20, 2013, 9:31 a.m.
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 <gang.chen@asianux.com>
> ---
>  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 F T - Jan. 20, 2013, 10:45 a.m.
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 <gang.chen@asianux.com>
>> ---
>>  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;
>>
> 
>

Patch

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;