summaryrefslogtreecommitdiffstats
path: root/drivers/staging/rt2860/common/cmm_info.c
diff options
context:
space:
mode:
authorAnders Kaseorg <andersk@MIT.EDU>2009-03-24 16:40:41 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2009-06-19 11:00:36 -0700
commit32c976bca43814be70d6062885be80673ffd66fc (patch)
tree1d87e2394cd825dd1a5b7f5f1334348fdb5a46a6 /drivers/staging/rt2860/common/cmm_info.c
parentd75b81a803bd93784d854bea13668db9dd75ff02 (diff)
downloadop-kernel-dev-32c976bca43814be70d6062885be80673ffd66fc.zip
op-kernel-dev-32c976bca43814be70d6062885be80673ffd66fc.tar.gz
Staging: rt2860: Don't call sprintf() with overlapping input and output.
The use of sprintf() to append to a buffer, as in sprintf(buf, "%sEntry: %d\n", buf, i) is not valid according to C99 ("If copying takes place between objects that overlap, the behavior is undefined."). It breaks at least in userspace under gcc -D_FORTIFY_SOURCE. Replace this construct with sprintf(buf + strlen(buf), "Entry: %d\n", i) This patch was automatically generated using perl -0pe 's/(sprintf\s*\(\s*([^,]*))(\s*,\s*")%s((?:[^"\\]|\\.)*"\s*,)\s*\2\s*,/$1 + strlen($2)$3$4/g' perl -0pe 's/(snprintf\s*\(\s*([^,]*))(\s*,[^,]*?)(\s*,\s*")%s((?:[^"\\]|\\.)*"\s*,)\s*\2\s*,/$1 + strlen($2)$3 - strlen($2)$4$5/g' Signed-off-by: Anders Kaseorg <andersk@mit.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/rt2860/common/cmm_info.c')
-rw-r--r--drivers/staging/rt2860/common/cmm_info.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/staging/rt2860/common/cmm_info.c b/drivers/staging/rt2860/common/cmm_info.c
index c3e1319..9e7efb0 100644
--- a/drivers/staging/rt2860/common/cmm_info.c
+++ b/drivers/staging/rt2860/common/cmm_info.c
@@ -2911,7 +2911,7 @@ INT RTMPShowCfgValue(
{
sprintf(pBuf, "\n");
for (PRTMP_PRIVATE_STA_SHOW_CFG_VALUE_PROC = RTMP_PRIVATE_STA_SHOW_CFG_VALUE_PROC; PRTMP_PRIVATE_STA_SHOW_CFG_VALUE_PROC->name; PRTMP_PRIVATE_STA_SHOW_CFG_VALUE_PROC++)
- sprintf(pBuf, "%s%s\n", pBuf, PRTMP_PRIVATE_STA_SHOW_CFG_VALUE_PROC->name);
+ sprintf(pBuf + strlen(pBuf), "%s\n", PRTMP_PRIVATE_STA_SHOW_CFG_VALUE_PROC->name);
}
return Status;
OpenPOWER on IntegriCloud