aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorblueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162>2008-08-21 17:58:08 +0000
committerblueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162>2008-08-21 17:58:08 +0000
commit7a63040c5f9740a5d351b68d475df6aa8b8a1d2a (patch)
tree4c148f7d993c1834f35851784f95955e460ba98c
parentc946fc16840d700b867009ea83481581bf6a2693 (diff)
downloadslirp-7a63040c5f9740a5d351b68d475df6aa8b8a1d2a.zip
slirp-7a63040c5f9740a5d351b68d475df6aa8b8a1d2a.tar.gz
slirp-7a63040c5f9740a5d351b68d475df6aa8b8a1d2a.tar.bz2
Fix OpenBSD linker warnings
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5044 c046a42c-6fe2-441c-8c8c-71466251a162
-rw-r--r--misc.c4
-rw-r--r--slirp.c2
-rw-r--r--tcp_subr.c45
-rw-r--r--tftp.c7
4 files changed, 34 insertions, 24 deletions
diff --git a/misc.c b/misc.c
index 6536a1c..deae6a9 100644
--- a/misc.c
+++ b/misc.c
@@ -394,8 +394,8 @@ int fork_exec(struct socket *so, const char *ex, int do_pty)
{
char buff[256];
- sprintf(buff, "Error: execvp of %s failed: %s\n", argv[0],
- strerror(errno));
+ snprintf(buff, sizeof(buff), "Error: execvp of %s failed: %s\n",
+ argv[0], strerror(errno));
write(2, buff, strlen(buff) + 1);
}
close(0);
diff --git a/slirp.c b/slirp.c
index fc68f10..e2b4a11 100644
--- a/slirp.c
+++ b/slirp.c
@@ -84,7 +84,7 @@ static int get_dns_addr(struct in_addr *pdns_addr)
static int get_dns_addr(struct in_addr *pdns_addr)
{
char buff[512];
- char buff2[256];
+ char buff2[257];
FILE *f;
int found = 0;
struct in_addr tmp_addr;
diff --git a/tcp_subr.c b/tcp_subr.c
index 30b5dbc..6c2948c 100644
--- a/tcp_subr.c
+++ b/tcp_subr.c
@@ -614,7 +614,7 @@ int tcp_emu(so, m) struct socket *so;
struct mbuf *m;
{
u_int n1, n2, n3, n4, n5, n6;
- char buff[256];
+ char buff[257];
u_int32_t laddr;
u_int lport;
char *bptr;
@@ -659,7 +659,8 @@ struct mbuf *m;
}
}
}
- so_rcv->sb_cc = sprintf(so_rcv->sb_data, "%d,%d\r\n", n1, n2);
+ so_rcv->sb_cc = snprintf(so_rcv->sb_data, so_rcv->sb_datalen,
+ "%d,%d\r\n", n1, n2);
so_rcv->sb_rptr = so_rcv->sb_data;
so_rcv->sb_wptr = so_rcv->sb_data + so_rcv->sb_cc;
}
@@ -993,8 +994,9 @@ do_prompt:
n4 = (laddr & 0xff);
m->m_len = bptr - m->m_data; /* Adjust length */
- m->m_len += sprintf(bptr, "ORT %d,%d,%d,%d,%d,%d\r\n%s", n1, n2, n3,
- n4, n5, n6, x == 7 ? buff : "");
+ m->m_len += snprintf(bptr, m->m_hdr.mh_size - m->m_len,
+ "ORT %d,%d,%d,%d,%d,%d\r\n%s", n1, n2, n3, n4,
+ n5, n6, x == 7 ? buff : "");
return 1;
} else if ((bptr = (char *)strstr(m->m_data, "27 Entering")) != NULL) {
/*
@@ -1026,9 +1028,10 @@ do_prompt:
n4 = (laddr & 0xff);
m->m_len = bptr - m->m_data; /* Adjust length */
- m->m_len += sprintf(
- bptr, "27 Entering Passive Mode (%d,%d,%d,%d,%d,%d)\r\n%s", n1,
- n2, n3, n4, n5, n6, x == 7 ? buff : "");
+ m->m_len +=
+ snprintf(bptr, m->m_hdr.mh_size - m->m_len,
+ "27 Entering Passive Mode (%d,%d,%d,%d,%d,%d)\r\n%s",
+ n1, n2, n3, n4, n5, n6, x == 7 ? buff : "");
return 1;
}
@@ -1052,7 +1055,9 @@ do_prompt:
if (m->m_data[m->m_len - 1] == '\0' && lport != 0 &&
(so = solisten(0, so->so_laddr.s_addr, htons(lport),
SS_FACCEPTONCE)) != NULL)
- m->m_len = sprintf(m->m_data, "%d", ntohs(so->so_fport)) + 1;
+ m->m_len = snprintf(m->m_data, m->m_hdr.mh_size, "%d",
+ ntohs(so->so_fport)) +
+ 1;
return 1;
case EMU_IRC:
@@ -1070,9 +1075,10 @@ do_prompt:
return 1;
m->m_len = bptr - m->m_data; /* Adjust length */
- m->m_len += sprintf(bptr, "DCC CHAT chat %lu %u%c\n",
- (unsigned long)ntohl(so->so_faddr.s_addr),
- ntohs(so->so_fport), 1);
+ m->m_len +=
+ snprintf(bptr, m->m_hdr.mh_size, "DCC CHAT chat %lu %u%c\n",
+ (unsigned long)ntohl(so->so_faddr.s_addr),
+ ntohs(so->so_fport), 1);
} else if (sscanf(bptr, "DCC SEND %256s %u %u %u", buff, &laddr, &lport,
&n1) == 4) {
if ((so = solisten(0, htonl(laddr), htons(lport),
@@ -1080,9 +1086,10 @@ do_prompt:
return 1;
m->m_len = bptr - m->m_data; /* Adjust length */
- m->m_len += sprintf(bptr, "DCC SEND %s %lu %u %u%c\n", buff,
- (unsigned long)ntohl(so->so_faddr.s_addr),
- ntohs(so->so_fport), n1, 1);
+ m->m_len +=
+ snprintf(bptr, m->m_hdr.mh_size, "DCC SEND %s %lu %u %u%c\n",
+ buff, (unsigned long)ntohl(so->so_faddr.s_addr),
+ ntohs(so->so_fport), n1, 1);
} else if (sscanf(bptr, "DCC MOVE %256s %u %u %u", buff, &laddr, &lport,
&n1) == 4) {
if ((so = solisten(0, htonl(laddr), htons(lport),
@@ -1090,9 +1097,10 @@ do_prompt:
return 1;
m->m_len = bptr - m->m_data; /* Adjust length */
- m->m_len += sprintf(bptr, "DCC MOVE %s %lu %u %u%c\n", buff,
- (unsigned long)ntohl(so->so_faddr.s_addr),
- ntohs(so->so_fport), n1, 1);
+ m->m_len +=
+ snprintf(bptr, m->m_hdr.mh_size, "DCC MOVE %s %lu %u %u%c\n",
+ buff, (unsigned long)ntohl(so->so_faddr.s_addr),
+ ntohs(so->so_fport), n1, 1);
}
return 1;
@@ -1276,7 +1284,8 @@ int tcp_ctl(so) struct socket *so;
/* FALLTHROUGH */
case CTL_ALIAS:
sb->sb_cc =
- sprintf(sb->sb_wptr, "Error: No application configured.\r\n");
+ snprintf(sb->sb_wptr, sb->sb_datalen - (sb->sb_wptr - sb->sb_data),
+ "Error: No application configured.\r\n");
sb->sb_wptr += sb->sb_cc;
return (0);
diff --git a/tftp.c b/tftp.c
index f879be8..5ddca27 100644
--- a/tftp.c
+++ b/tftp.c
@@ -23,6 +23,7 @@
*/
#include <slirp.h>
+#include "qemu-common.h" // for pstrcpy
struct tftp_session {
int in_use;
@@ -147,8 +148,8 @@ static int tftp_send_oack(struct tftp_session *spt, const char *key,
m->m_data += sizeof(struct udpiphdr);
tp->tp_op = htons(TFTP_OACK);
- n += sprintf(tp->x.tp_buf + n, "%s", key) + 1;
- n += sprintf(tp->x.tp_buf + n, "%u", value) + 1;
+ n += snprintf(tp->x.tp_buf + n, sizeof(tp->x.tp_buf) - n, "%s", key) + 1;
+ n += snprintf(tp->x.tp_buf + n, sizeof(tp->x.tp_buf) - n, "%u", value) + 1;
saddr.sin_addr = recv_tp->ip.ip_dst;
saddr.sin_port = recv_tp->udp.uh_dport;
@@ -186,7 +187,7 @@ static int tftp_send_error(struct tftp_session *spt, u_int16_t errorcode,
tp->tp_op = htons(TFTP_ERROR);
tp->x.tp_error.tp_error_code = htons(errorcode);
- strcpy(tp->x.tp_error.tp_msg, msg);
+ pstrcpy(tp->x.tp_error.tp_msg, sizeof(tp->x.tp_error.tp_msg), msg);
saddr.sin_addr = recv_tp->ip.ip_dst;
saddr.sin_port = recv_tp->udp.uh_dport;