Staging: rt2860: Don't call sprintf() with overlapping input and output.
authorAnders Kaseorg <andersk@MIT.EDU>
Tue, 24 Mar 2009 20:40:41 +0000 (16:40 -0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 19 Jun 2009 18:00:36 +0000 (11:00 -0700)
commit32c976bca43814be70d6062885be80673ffd66fc
tree1d87e2394cd825dd1a5b7f5f1334348fdb5a46a6
parentd75b81a803bd93784d854bea13668db9dd75ff02
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>
drivers/staging/rt2860/common/cmm_info.c
drivers/staging/rt2860/sta/assoc.c
drivers/staging/rt2860/sta_ioctl.c