| 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
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
于 2013年01月07日 19:17, Stanislaw Gruszka 写道: >> > Signed-off-by: Chen Gang <gang.chen@asianux.com> > ACK thank you very much. :-)
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;
>
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;
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(-)