Patchwork [U-Boot] miiphy: use strcpy() not sprintf()

login
register
mail settings
Submitter Laurence Withers
Date July 14, 2011, 12:31 p.m.
Message ID <1310646667-2426-1-git-send-email-lwithers@guralp.com>
Download mbox | patch
Permalink /patch/104671/
State Superseded
Headers show

Comments

Laurence Withers - July 14, 2011, 12:31 p.m.
In miiphy_register() the new device's name was initialised by passing a
string parameter as the format string to sprintf(). As this would cause
problems if it ever contained a '%' symbol, switch to using strcpy()
instead.

Signed-off-by: Laurence Withers <lwithers@guralp.com>
Cc: Andy Fleming <afleming@freescale.com>
---
 common/miiphyutil.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Albert ARIBAUD - July 14, 2011, 1:49 p.m.
Hi Laurence,

Le 14/07/2011 14:31, Laurence Withers a écrit :
> In miiphy_register() the new device's name was initialised by passing a
> string parameter as the format string to sprintf(). As this would cause
> problems if it ever contained a '%' symbol, switch to using strcpy()
> instead.

Please use strncpy() which will also guard against overflows.

Amicalement,
Mike Frysinger - July 14, 2011, 6:02 p.m.
On Thursday, July 14, 2011 09:49:23 Albert ARIBAUD wrote:
> Le 14/07/2011 14:31, Laurence Withers a écrit :
> > In miiphy_register() the new device's name was initialised by passing a
> > string parameter as the format string to sprintf(). As this would cause
> > problems if it ever contained a '%' symbol, switch to using strcpy()
> > instead.
> 
> Please use strncpy() which will also guard against overflows.

or BUG_ON(strlen(name) >= MDIO_NAME_LEN)
-mike
Laurence Withers - July 15, 2011, 9:21 a.m.
On Thu, Jul 14, 2011 at 02:02:42PM -0400, Mike Frysinger wrote:
> On Thursday, July 14, 2011 09:49:23 Albert ARIBAUD wrote:
> > Please use strncpy() which will also guard against overflows.
> 
> or BUG_ON(strlen(name) >= MDIO_NAME_LEN)
> -mike

Patch v3 has both. The original code did have a check for the name
overflowing but BUG_ON() is IMO clearer so I switched to using it instead. I
kept strncpy() in v3, rather than just strcpy(), because it makes the code
robust against future edits. Thanks for the feedback.

Bye for now,

Patch

diff --git a/common/miiphyutil.c b/common/miiphyutil.c
index bcab74e..0ddf88e 100644
--- a/common/miiphyutil.c
+++ b/common/miiphyutil.c
@@ -141,7 +141,7 @@  void miiphy_register(const char *name,
 	/* initalize mii_dev struct fields */
 	new_dev->read = legacy_miiphy_read;
 	new_dev->write = legacy_miiphy_write;
-	sprintf(new_dev->name, name);
+	strcpy(new_dev->name, name);
 	ldev->read = read;
 	ldev->write = write;
 	new_dev->priv = ldev;