|
| 1 | +From 12edf3725475d4a99e5598df3289bace47b8f56e Mon Sep 17 00:00:00 2001 |
| 2 | +From: Nick Banks < [email protected]> |
| 3 | +Date: Mon, 18 Mar 2024 12:34:17 -0400 |
| 4 | +Subject: [PATCH] Fix Posix QuicAddrToString (#4197) |
| 5 | + |
| 6 | +--- |
| 7 | + src/inc/msquic_posix.h | 7 +++++-- |
| 8 | + 1 file changed, 5 insertions(+), 2 deletions(-) |
| 9 | + |
| 10 | +diff --git a/src/inc/msquic_posix.h b/src/inc/msquic_posix.h |
| 11 | +index 612d67afb4..27393e1233 100644 |
| 12 | +--- a/src/inc/msquic_posix.h |
| 13 | ++++ b/src/inc/msquic_posix.h |
| 14 | +@@ -489,16 +489,18 @@ QuicAddrToString( |
| 15 | + _Out_ QUIC_ADDR_STR* AddrStr |
| 16 | + ) |
| 17 | + { |
| 18 | ++ size_t AvailSpace = sizeof(AddrStr->Address); |
| 19 | + char* Address = AddrStr->Address; |
| 20 | + if (Addr->Ip.sa_family == QUIC_ADDRESS_FAMILY_INET6 && Addr->Ipv6.sin6_port != 0) { |
| 21 | + Address[0] = '['; |
| 22 | + Address++; |
| 23 | ++ AvailSpace--; |
| 24 | + } |
| 25 | + if (inet_ntop( |
| 26 | + Addr->Ip.sa_family == QUIC_ADDRESS_FAMILY_INET ? AF_INET : AF_INET6, |
| 27 | + Addr->Ip.sa_family == QUIC_ADDRESS_FAMILY_INET ? (void*)&Addr->Ipv4.sin_addr : (void*)&Addr->Ipv6.sin6_addr, |
| 28 | + Address, |
| 29 | +- sizeof(QUIC_ADDR_STR)) == NULL) { |
| 30 | ++ AvailSpace) == NULL) { |
| 31 | + return FALSE; |
| 32 | + } |
| 33 | + if (Addr->Ipv4.sin_port != 0) { |
| 34 | +@@ -507,7 +509,8 @@ QuicAddrToString( |
| 35 | + Address[0] = ']'; |
| 36 | + Address++; |
| 37 | + } |
| 38 | +- snprintf(Address, 64, ":%hu", ntohs(Addr->Ipv4.sin_port)); |
| 39 | ++ AvailSpace = sizeof(AddrStr->Address) - (Address - AddrStr->Address); |
| 40 | ++ snprintf(Address, AvailSpace, ":%hu", ntohs(Addr->Ipv4.sin_port)); |
| 41 | + } |
| 42 | + return TRUE; |
| 43 | + } |
0 commit comments