A number of printf-like functions used incorrect format specifiers for Windows builds, which could potentially lead to incorrect values being printed / used when calling executables.
Signed-off-by: Steffan Karger <steffan.kar...@fox-it.com> --- v2: add OVPN_PRI_SKT define to print socket type across platforms src/openvpn/init.c | 2 +- src/openvpn/route.c | 12 ++++++------ src/openvpn/socket.c | 7 ++++--- src/openvpn/syshead.h | 2 ++ src/openvpn/tun.c | 4 ++-- 5 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/openvpn/init.c b/src/openvpn/init.c index 033318d..2a9a398 100644 --- a/src/openvpn/init.c +++ b/src/openvpn/init.c @@ -1585,7 +1585,7 @@ do_open_tun(struct context *c) #ifdef _WIN32 /* store (hide) interactive service handle in tuntap_options */ c->c1.tuntap->options.msg_channel = c->options.msg_channel; - msg(D_ROUTE, "interactive service msg_channel=%u", (unsigned int) c->options.msg_channel); + msg(D_ROUTE, "interactive service msg_channel=%"PRIuPTR, (uintptr_t) c->options.msg_channel); #endif /* allocate route list structure */ diff --git a/src/openvpn/route.c b/src/openvpn/route.c index fec1c25..25b5fce 100644 --- a/src/openvpn/route.c +++ b/src/openvpn/route.c @@ -1967,12 +1967,12 @@ add_route_ipv6(struct route_ipv6 *r6, const struct tuntap *tt, unsigned int flag struct buffer out = alloc_buf_gc(64, &gc); if (r6->adapter_index) /* vpn server special route */ { - buf_printf(&out, "interface=%d", r6->adapter_index ); + buf_printf(&out, "interface=%lu", r6->adapter_index ); gateway_needed = true; } else { - buf_printf(&out, "interface=%d", tt->adapter_index ); + buf_printf(&out, "interface=%lu", tt->adapter_index ); } device = buf_bptr(&out); @@ -2406,12 +2406,12 @@ delete_route_ipv6(const struct route_ipv6 *r6, const struct tuntap *tt, unsigned struct buffer out = alloc_buf_gc(64, &gc); if (r6->adapter_index) /* vpn server special route */ { - buf_printf(&out, "interface=%d", r6->adapter_index ); + buf_printf(&out, "interface=%lu", r6->adapter_index ); gateway_needed = true; } else { - buf_printf(&out, "interface=%d", tt->adapter_index ); + buf_printf(&out, "interface=%lu", tt->adapter_index ); } device = buf_bptr(&out); @@ -2832,7 +2832,7 @@ get_default_gateway_ipv6(struct route_ipv6_gateway_info *rgi6, goto done; } - msg( D_ROUTE, "GDG6: II=%d DP=%s/%d NH=%s", + msg( D_ROUTE, "GDG6: II=%lu DP=%s/%u NH=%s", BestRoute.InterfaceIndex, print_in6_addr( BestRoute.DestinationPrefix.Prefix.Ipv6.sin6_addr, 0, &gc), BestRoute.DestinationPrefix.PrefixLength, @@ -2993,7 +2993,7 @@ do_route_service(const bool add, const route_message_t *rt, const size_t size, H if (ack.error_number != NO_ERROR) { - msg(M_WARN, "ROUTE: route %s failed using service: %s [status=%u if_index=%lu]", + msg(M_WARN, "ROUTE: route %s failed using service: %s [status=%u if_index=%d]", (add ? "addition" : "deletion"), strerror_win32(ack.error_number, &gc), ack.error_number, rt->iface.index); goto out; diff --git a/src/openvpn/socket.c b/src/openvpn/socket.c index c1c0eaa..c854f90 100644 --- a/src/openvpn/socket.c +++ b/src/openvpn/socket.c @@ -1119,7 +1119,7 @@ socket_do_accept(socket_descriptor_t sd, if (!socket_defined(new_sd)) { - msg(D_LINK_ERRORS | M_ERRNO, "TCP: accept(%d) failed", sd); + msg(D_LINK_ERRORS | M_ERRNO, "TCP: accept(%"PRI_OVPN_SKT") failed", sd); } /* only valid if we have remote_len_af!=0 */ else if (remote_len_af && remote_len != remote_len_af) @@ -1872,13 +1872,14 @@ phase2_inetd(struct link_socket *sock, const struct frame *frame, if (getsockname(sock->sd, &local_addr.addr.sa, &addrlen) == 0) { sock->info.lsa->actual.dest.addr.sa.sa_family = local_addr.addr.sa.sa_family; - dmsg(D_SOCKET_DEBUG, "inetd(%s): using sa_family=%d from getsockname(%d)", + dmsg(D_SOCKET_DEBUG, + "inetd(%s): using sa_family=%d from getsockname(%"PRI_OVPN_SKT")", proto2ascii(sock->info.proto, sock->info.af, false), local_addr.addr.sa.sa_family, sock->sd); } else { - msg(M_WARN, "inetd(%s): getsockname(%d) failed, using AF_INET", + msg(M_WARN, "inetd(%s): getsockname(%"PRI_OVPN_SKT") failed, using AF_INET", proto2ascii(sock->info.proto, sock->info.af, false), sock->sd); } } diff --git a/src/openvpn/syshead.h b/src/openvpn/syshead.h index a1b6047..fcb9318 100644 --- a/src/openvpn/syshead.h +++ b/src/openvpn/syshead.h @@ -482,9 +482,11 @@ typedef unsigned short sa_family_t; #ifdef _WIN32 #define SOCKET_UNDEFINED (INVALID_SOCKET) typedef SOCKET socket_descriptor_t; +#define PRI_OVPN_SKT PRIuPTR #else #define SOCKET_UNDEFINED (-1) typedef int socket_descriptor_t; +#define PRI_OVPN_SKT "d" #endif static inline int diff --git a/src/openvpn/tun.c b/src/openvpn/tun.c index 3504fbf..0b13310 100644 --- a/src/openvpn/tun.c +++ b/src/openvpn/tun.c @@ -125,7 +125,7 @@ do_address_service(const bool add, const short family, const struct tuntap *tt) if (ack.error_number != NO_ERROR) { - msg(M_WARN, "TUN: %s address failed using service: %s [status=%u if_index=%lu]", + msg(M_WARN, "TUN: %s address failed using service: %s [status=%u if_index=%d]", (add ? "adding" : "deleting"), strerror_win32(ack.error_number, &gc), ack.error_number, addr.iface.index); goto out; @@ -3796,7 +3796,7 @@ get_panel_reg(struct gc_arena *gc) if (status != ERROR_SUCCESS || name_type != REG_SZ) { - dmsg(D_REGISTRY, "Error opening registry key: %s\\%s\\%s", + dmsg(D_REGISTRY, "Error opening registry key: %s\\%s\\%S", NETWORK_CONNECTIONS_KEY, connection_string, name_string); } else -- 2.7.4 ------------------------------------------------------------------------------ Announcing the Oxford Dictionaries API! The API offers world-renowned dictionary content that is easy and intuitive to access. Sign up for an account today to start using our lexical data to power your apps and projects. Get started today and enter our developer competition. http://sdm.link/oxford _______________________________________________ Openvpn-devel mailing list Openvpn-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openvpn-devel