[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 15/27] slirp: add slirp own version of pstrcpy
From: |
Marc-André Lureau |
Subject: |
[Qemu-devel] [PATCH 15/27] slirp: add slirp own version of pstrcpy |
Date: |
Thu, 17 Jan 2019 15:43:47 +0400 |
Remove a dependency on qemu util.
Signed-off-by: Marc-André Lureau <address@hidden>
---
slirp/util.h | 2 ++
slirp/slirp.c | 4 ++--
slirp/tftp.c | 2 +-
slirp/util.c | 17 +++++++++++++++++
4 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/slirp/util.h b/slirp/util.h
index 782ae8ef0ee..e3332cdcd60 100644
--- a/slirp/util.h
+++ b/slirp/util.h
@@ -89,4 +89,6 @@ static inline int slirp_socket_set_fast_reuse(int fd)
#endif
}
+void slirp_pstrcpy(char *buf, int buf_size, const char *str);
+
#endif
diff --git a/slirp/slirp.c b/slirp/slirp.c
index 5450b52dbf4..9e38d3f8cb3 100644
--- a/slirp/slirp.c
+++ b/slirp/slirp.c
@@ -320,8 +320,8 @@ Slirp *slirp_init(int restricted, bool in_enabled, struct
in_addr vnetwork,
slirp->vprefix_len = vprefix_len;
slirp->vhost_addr6 = vhost6;
if (vhostname) {
- pstrcpy(slirp->client_hostname, sizeof(slirp->client_hostname),
- vhostname);
+ slirp_pstrcpy(slirp->client_hostname, sizeof(slirp->client_hostname),
+ vhostname);
}
slirp->tftp_prefix = g_strdup(tftp_path);
slirp->bootp_filename = g_strdup(bootfile);
diff --git a/slirp/tftp.c b/slirp/tftp.c
index 6fb381ef337..f0bcc72c925 100644
--- a/slirp/tftp.c
+++ b/slirp/tftp.c
@@ -216,7 +216,7 @@ static void tftp_send_error(struct tftp_session *spt,
tp->tp_op = htons(TFTP_ERROR);
tp->x.tp_error.tp_error_code = htons(errorcode);
- pstrcpy((char *)tp->x.tp_error.tp_msg, sizeof(tp->x.tp_error.tp_msg), msg);
+ slirp_pstrcpy((char *)tp->x.tp_error.tp_msg, sizeof(tp->x.tp_error.tp_msg),
msg);
m->m_len = sizeof(struct tftp_t) - (TFTP_BLOCKSIZE_MAX + 2) + 3 + strlen(msg)
- sizeof(struct udphdr);
diff --git a/slirp/util.c b/slirp/util.c
index 499c5cea46f..60f474f0aab 100644
--- a/slirp/util.c
+++ b/slirp/util.c
@@ -186,3 +186,20 @@ int slirp_closesocket(int fd)
return ret;
}
#endif /* WIN32 */
+
+void slirp_pstrcpy(char *buf, int buf_size, const char *str)
+{
+ int c;
+ char *q = buf;
+
+ if (buf_size <= 0)
+ return;
+
+ for(;;) {
+ c = *str++;
+ if (c == 0 || q >= buf + buf_size - 1)
+ break;
+ *q++ = c;
+ }
+ *q = '\0';
+}
--
2.20.1.98.gecbdaf0899
- [Qemu-devel] [PATCH 13/27] slirp: do not include qemu headers in libslirp.h public API header, (continued)
- [Qemu-devel] [PATCH 13/27] slirp: do not include qemu headers in libslirp.h public API header, Marc-André Lureau, 2019/01/17
- [Qemu-devel] [PATCH 12/27] slirp: move QEMU state saving to a separate unit, Marc-André Lureau, 2019/01/17
- [Qemu-devel] [PATCH 14/27] slirp: improve windows headers inclusion, Marc-André Lureau, 2019/01/17
- [Qemu-devel] [PATCH 16/27] slirp: remove qemu timer.h dependency, Marc-André Lureau, 2019/01/17
- [Qemu-devel] [PATCH 17/27] slirp: remove now useless QEMU headers inclusions, Marc-André Lureau, 2019/01/17
- [Qemu-devel] [PATCH 15/27] slirp: add slirp own version of pstrcpy,
Marc-André Lureau <=
- [Qemu-devel] [PATCH 18/27] slirp: replace net/eth.h inclusion with own defines, Marc-André Lureau, 2019/01/17
- [Qemu-devel] [PATCH 19/27] slirp: replace qemu qtailq with slirp own copy, Marc-André Lureau, 2019/01/17
- [Qemu-devel] [PATCH 20/27] slirp: replace remaining qemu headers dependency, Marc-André Lureau, 2019/01/17
- [Qemu-devel] [PATCH 22/27] slirp: improve send_packet() callback, Marc-André Lureau, 2019/01/17
- [Qemu-devel] [PATCH 21/27] slirp: prefer c99 types over BSD kind, Marc-André Lureau, 2019/01/17