Message ID | 50EA5246.8060206@asianux.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
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 linux-wireless" 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; >> > >
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(-)