From 79ea9d8fec5889d692a0e73561395f2da83f7796 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Date: Mon, 27 Jan 2020 14:13:42 +0100 Subject: misc: improve error report MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc-André Lureau --- src/util.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/util.c b/src/util.c index e3b6257..b8cdbe2 100644 --- a/src/util.c +++ b/src/util.c @@ -393,7 +393,7 @@ int slirp_fmt(char *str, size_t size, const char *format, ...) va_end(args); if (rv > size) { - g_critical("vsnprintf() truncation"); + g_critical("slirp_fmt() truncation"); } return MIN(rv, size); @@ -416,7 +416,7 @@ int slirp_fmt0(char *str, size_t size, const char *format, ...) va_end(args); if (rv >= size) { - g_critical("vsnprintf() truncation"); + g_critical("slirp_fmt0() truncation"); if (size > 0) str[size - 1] = '\0'; rv = size; -- cgit v1.1 From 436c53ce0c69cb39e6b1c293a3c9f7ac09ac9035 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Date: Mon, 27 Jan 2020 14:14:19 +0100 Subject: Use g_snprintf() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The GLib impl guarantees GNU compatible format strings, which fixes the horror of Windows platform format strings. Suggested-by: Daniel P. Berrangé Signed-off-by: Marc-André Lureau --- src/tcp_subr.c | 2 +- src/util.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/tcp_subr.c b/src/tcp_subr.c index a72c86b..9dc541a 100644 --- a/src/tcp_subr.c +++ b/src/tcp_subr.c @@ -642,7 +642,7 @@ int tcp_emu(struct socket *so, struct mbuf *m) } NTOHS(n1); NTOHS(n2); - m_inc(m, snprintf(NULL, 0, "%d,%d\r\n", n1, n2) + 1); + m_inc(m, g_snprintf(NULL, 0, "%d,%d\r\n", n1, n2) + 1); m->m_len = slirp_fmt(m->m_data, M_ROOM(m), "%d,%d\r\n", n1, n2); } else { *eol = '\r'; diff --git a/src/util.c b/src/util.c index b8cdbe2..570c53f 100644 --- a/src/util.c +++ b/src/util.c @@ -368,10 +368,10 @@ void slirp_pstrcpy(char *buf, int buf_size, const char *str) static int slirp_vsnprintf(char *str, size_t size, const char *format, va_list args) { - int rv = vsnprintf(str, size, format, args); + int rv = g_vsnprintf(str, size, format, args); if (rv < 0) { - g_error("vsnprintf() failed: %s", g_strerror(errno)); + g_error("g_vsnprintf() failed: %s", g_strerror(errno)); } return rv; -- cgit v1.1 From 3526e0bd51a5f1e3a1539dcec29145ac91456d17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Date: Mon, 27 Jan 2020 15:23:09 +0100 Subject: util: add gnuc format function attribute to slirp_fmt* MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc-André Lureau Suggested-by: Daniel P. Berrangé --- src/util.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/util.h b/src/util.h index 5530c46..d67b3d0 100644 --- a/src/util.h +++ b/src/util.h @@ -24,6 +24,8 @@ #ifndef UTIL_H_ #define UTIL_H_ +#include + #include #include #include @@ -181,7 +183,7 @@ static inline int slirp_socket_set_fast_reuse(int fd) void slirp_pstrcpy(char *buf, int buf_size, const char *str); -int slirp_fmt(char *str, size_t size, const char *format, ...); -int slirp_fmt0(char *str, size_t size, const char *format, ...); +int slirp_fmt(char *str, size_t size, const char *format, ...) G_GNUC_PRINTF(3, 4); +int slirp_fmt0(char *str, size_t size, const char *format, ...) G_GNUC_PRINTF(3, 4); #endif -- cgit v1.1