[U-Boot] [PATCH 4/4] Use snprintf() in network code

Simon Glass
2011-09-23T17:38:52Z

This tidies up network code to use snprintf() in most cases instead of
sprintf(). A few functions remain as they require header file changes.

Signed-off-by: Simon Glass <sjg@chromium.org>
---
net/eth.c | 10 +++++++---
net/net.c | 15 ++++++++++-----
net/nfs.c | 3 ++-
net/tftp.c | 3 ++-
4 files changed, 21 insertions(+), 10 deletions(-)

diff --git a/net/eth.c b/net/eth.c
index 5911b1c..30711d4 100644
--- a/net/eth.c
+++ b/net/eth.c
@@ -49,7 +49,7 @@ int eth_setenv_enetaddr(char *name, const uchar *enetaddr)
{
char buf[20];

- sprintf(buf, "%pM", enetaddr);
+ snprintf(buf, sizeof(buf), "%pM", enetaddr);

return setenv(name, buf);
}
@@ -58,7 +58,9 @@ int eth_getenv_enetaddr_by_index(const char *base_name, int index,
uchar *enetaddr)
{
char enetvar[32];
- sprintf(enetvar, index ? "%s%daddr" : "%saddr", base_name, index);
+
+ snprintf(enetvar, sizeof(enetvar), index ? "%s%daddr" : "%saddr",
+ base_name, index);
return eth_getenv_enetaddr(enetvar, enetaddr);
}

@@ -68,7 +70,9 @@ static int eth_mac_skip(int index)
{
char enetvar[15];
char *skip_state;
- sprintf(enetvar, index ? "eth%dmacskip" : "ethmacskip", index);
+
+ snprintf(enetvar, sizeof(enetvar),
+ index ? "eth%dmacskip" : "ethmacskip", index);
return ((skip_state = getenv(enetvar)) != NULL);
}

diff --git a/net/net.c b/net/net.c
index 7a60583..28e45c0 100644
--- a/net/net.c
+++ b/net/net.c
@@ -573,10 +573,12 @@ restart:
printf("Bytes transferred = %ld (%lx hex)\n",
NetBootFileXferSize,
NetBootFileXferSize);
- sprintf(buf, "%lX", NetBootFileXferSize);
+ snprintf(buf, sizeof(buf), "%lX",
+ NetBootFileXferSize);
setenv("filesize", buf);

- sprintf(buf, "%lX", (unsigned long)load_addr);
+ snprintf(buf, sizeof(buf), "%lX",
+ (unsigned long)load_addr);
setenv("fileaddr", buf);
}
eth_halt();
@@ -950,7 +952,8 @@ int CDPSendTrigger(void)
#ifdef CONFIG_CDP_DEVICE_ID
*s++ = htons(CDP_DEVICE_ID_TLV);
*s++ = htons(CONFIG_CDP_DEVICE_ID);
- sprintf(buf, CONFIG_CDP_DEVICE_ID_PREFIX "%pm", NetOurEther);
+ snprintf(buf, sizeof(buf), CONFIG_CDP_DEVICE_ID_PREFIX "%pm",
+ NetOurEther);
memcpy((uchar *)s, buf, 16);
s += 16 / 2;
#endif
@@ -958,7 +961,7 @@ int CDPSendTrigger(void)
#ifdef CONFIG_CDP_PORT_ID
*s++ = htons(CDP_PORT_ID_TLV);
memset(buf, 0, sizeof(buf));
- sprintf(buf, CONFIG_CDP_PORT_ID, eth_get_dev_index());
+ snprintf(buf, sizeof(buf), CONFIG_CDP_PORT_ID, eth_get_dev_index());
len = strlen(buf);
if (len & 1) /* make it even */
len++;
@@ -1516,7 +1519,9 @@ NetReceive(volatile uchar *inpkt, int len)
#ifdef CONFIG_KEEP_SERVERADDR
if (NetServerIP == NetArpWaitPacketIP) {
char buf[20];
- sprintf(buf, "%pM", arp->ar_data);
+
+ snprintf(buf, sizeof(buf), "%pM",
+ arp->ar_data);
setenv("serveraddr", buf);
}
#endif
diff --git a/net/nfs.c b/net/nfs.c
index f76f60d..d1e894e 100644
--- a/net/nfs.c
+++ b/net/nfs.c
@@ -688,7 +688,8 @@ NfsStart (void)
}

if (BootFile[0] == '\0') {
- sprintf (default_filename, "/nfsroot/%02lX%02lX%02lX%02lX.img",
+ snprintf(default_filename, sizeof(default_filename),
+ "/nfsroot/%02lX%02lX%02lX%02lX.img",
NetOurIP & 0xFF,
(NetOurIP >> 8) & 0xFF,
(NetOurIP >> 16) & 0xFF,
diff --git a/net/tftp.c b/net/tftp.c
index a893e02..c4f6a59 100644
--- a/net/tftp.c
+++ b/net/tftp.c
@@ -591,7 +591,8 @@ TftpStart(void)

TftpRemoteIP = NetServerIP;
if (BootFile[0] == '\0') {
- sprintf(default_filename, "%02lX%02lX%02lX%02lX.img",
+ snprintf(default_filename, sizeof(default_filename),
+ "%02lX%02lX%02lX%02lX.img",
NetOurIP & 0xFF,
(NetOurIP >> 8) & 0xFF,
(NetOurIP >> 16) & 0xFF,
--
1.7.3.1