diff --git a/examples/peerconnection/client/linux/main_wnd.cc b/examples/peerconnection/client/linux/main_wnd.cc index 52b0d88523..2f7777d1ee 100644 --- a/examples/peerconnection/client/linux/main_wnd.cc +++ b/examples/peerconnection/client/linux/main_wnd.cc @@ -18,11 +18,8 @@ #include "examples/peerconnection/client/defaults.h" #include "rtc_base/checks.h" #include "rtc_base/logging.h" -#include "rtc_base/stringutils.h" #include "third_party/libyuv/include/libyuv/convert_from.h" -using rtc::sprintfn; - namespace { // @@ -150,7 +147,7 @@ GtkMainWnd::GtkMainWnd(const char* server, autoconnect_(autoconnect), autocall_(autocall) { char buffer[10]; - sprintfn(buffer, sizeof(buffer), "%i", port); + snprintf(buffer, sizeof(buffer), "%i", port); port_ = buffer; } diff --git a/examples/peerconnection/client/main_wnd.cc b/examples/peerconnection/client/main_wnd.cc index 3ad248843a..8edd1e76f3 100644 --- a/examples/peerconnection/client/main_wnd.cc +++ b/examples/peerconnection/client/main_wnd.cc @@ -17,14 +17,11 @@ #include "rtc_base/arraysize.h" #include "rtc_base/checks.h" #include "rtc_base/logging.h" -#include "rtc_base/stringutils.h" #include "third_party/libyuv/include/libyuv/convert_argb.h" ATOM MainWnd::wnd_class_ = 0; const wchar_t MainWnd::kClassName[] = L"WebRTC_MainWnd"; -using rtc::sprintfn; - namespace { const char kConnecting[] = "Connecting... "; @@ -86,8 +83,8 @@ MainWnd::MainWnd(const char* server, server_(server), auto_connect_(auto_connect), auto_call_(auto_call) { - char buffer[10] = {0}; - sprintfn(buffer, sizeof(buffer), "%i", port); + char buffer[10]; + snprintf(buffer, sizeof(buffer), "%i", port); port_ = buffer; } diff --git a/examples/peerconnection/client/peer_connection_client.cc b/examples/peerconnection/client/peer_connection_client.cc index bb79d16791..f173e42793 100644 --- a/examples/peerconnection/client/peer_connection_client.cc +++ b/examples/peerconnection/client/peer_connection_client.cc @@ -14,14 +14,11 @@ #include "rtc_base/checks.h" #include "rtc_base/logging.h" #include "rtc_base/nethelpers.h" -#include "rtc_base/stringutils.h" #ifdef WIN32 #include "rtc_base/win32socketserver.h" #endif -using rtc::sprintfn; - namespace { // This is our magical hangup signal. @@ -136,7 +133,7 @@ void PeerConnectionClient::DoConnect() { hanging_get_.reset(CreateClientSocket(server_address_.ipaddr().family())); InitSocketSignals(); char buffer[1024]; - sprintfn(buffer, sizeof(buffer), "GET /sign_in?%s HTTP/1.0\r\n\r\n", + snprintf(buffer, sizeof(buffer), "GET /sign_in?%s HTTP/1.0\r\n\r\n", client_name_.c_str()); onconnect_data_ = buffer; @@ -158,9 +155,9 @@ bool PeerConnectionClient::SendToPeer(int peer_id, const std::string& message) { return false; char headers[1024]; - sprintfn(headers, sizeof(headers), + snprintf(headers, sizeof(headers), "POST /message?peer_id=%i&to=%i HTTP/1.0\r\n" - "Content-Length: %i\r\n" + "Content-Length: %zu\r\n" "Content-Type: text/plain\r\n" "\r\n", my_id_, peer_id, message.length()); @@ -190,7 +187,7 @@ bool PeerConnectionClient::SignOut() { if (my_id_ != -1) { char buffer[1024]; - sprintfn(buffer, sizeof(buffer), + snprintf(buffer, sizeof(buffer), "GET /sign_out?peer_id=%i HTTP/1.0\r\n\r\n", my_id_); onconnect_data_ = buffer; return ConnectControlSocket(); @@ -237,7 +234,7 @@ void PeerConnectionClient::OnConnect(rtc::AsyncSocket* socket) { void PeerConnectionClient::OnHangingGetConnect(rtc::AsyncSocket* socket) { char buffer[1024]; - sprintfn(buffer, sizeof(buffer), "GET /wait?peer_id=%i HTTP/1.0\r\n\r\n", + snprintf(buffer, sizeof(buffer), "GET /wait?peer_id=%i HTTP/1.0\r\n\r\n", my_id_); int len = static_cast(strlen(buffer)); int sent = socket->Send(buffer, len); diff --git a/examples/peerconnection/server/peer_channel.cc b/examples/peerconnection/server/peer_channel.cc index 6ef08d7b21..b23b7e04e2 100644 --- a/examples/peerconnection/server/peer_channel.cc +++ b/examples/peerconnection/server/peer_channel.cc @@ -19,9 +19,6 @@ #include "examples/peerconnection/server/data_socket.h" #include "examples/peerconnection/server/utils.h" #include "rtc_base/stringencode.h" -#include "rtc_base/stringutils.h" - -using rtc::sprintfn; // Set to the peer id of the originator when messages are being // exchanged between peers, but set to the id of the receiving peer @@ -98,7 +95,7 @@ std::string ChannelMember::GetEntry() const { // name, 11-digit int, 1-digit bool, newline, null char entry[kMaxNameLength + 15]; - sprintfn(entry, sizeof(entry), "%s,%d,%d\n", + snprintf(entry, sizeof(entry), "%s,%d,%d\n", name_.substr(0, kMaxNameLength).c_str(), id_, connected_); return entry; } diff --git a/p2p/base/pseudotcp.cc b/p2p/base/pseudotcp.cc index 161122b6d5..c74298584a 100644 --- a/p2p/base/pseudotcp.cc +++ b/p2p/base/pseudotcp.cc @@ -24,7 +24,6 @@ #include "rtc_base/logging.h" #include "rtc_base/numerics/safe_minmax.h" #include "rtc_base/socket.h" -#include "rtc_base/stringutils.h" #include "rtc_base/timeutils.h" // The following logging is for detailed (packet-level) analysis only. @@ -186,8 +185,8 @@ void ReportStats() { char buffer[256]; size_t len = 0; for (int i = 0; i < S_NUM_STATS; ++i) { - len += rtc::sprintfn(buffer, arraysize(buffer), "%s%s:%d", - (i == 0) ? "" : ",", STAT_NAMES[i], g_stats[i]); + len += snprintf(buffer, arraysize(buffer), "%s%s:%d", + (i == 0) ? "" : ",", STAT_NAMES[i], g_stats[i]); g_stats[i] = 0; } RTC_LOG(LS_INFO) << "Stats[" << buffer << "]"; diff --git a/pc/webrtcsdp_unittest.cc b/pc/webrtcsdp_unittest.cc index 8eeeeabb77..59897af040 100644 --- a/pc/webrtcsdp_unittest.cc +++ b/pc/webrtcsdp_unittest.cc @@ -2078,9 +2078,8 @@ TEST_F(WebRtcSdpTest, SerializeWithSctpDataChannelAndNewPort) { char default_portstr[16]; char new_portstr[16]; - rtc::sprintfn(default_portstr, sizeof(default_portstr), "%d", - kDefaultSctpPort); - rtc::sprintfn(new_portstr, sizeof(new_portstr), "%d", kNewPort); + snprintf(default_portstr, sizeof(default_portstr), "%d", kDefaultSctpPort); + snprintf(new_portstr, sizeof(new_portstr), "%d", kNewPort); rtc::replace_substrs(default_portstr, strlen(default_portstr), new_portstr, strlen(new_portstr), &expected_sdp); diff --git a/rtc_base/base64_unittest.cc b/rtc_base/base64_unittest.cc index 4b857f1aa9..bdf8559c12 100644 --- a/rtc_base/base64_unittest.cc +++ b/rtc_base/base64_unittest.cc @@ -11,7 +11,6 @@ #include "rtc_base/third_party/base64/base64.h" #include "rtc_base/gunit.h" #include "rtc_base/logging.h" -#include "rtc_base/stringutils.h" #include "rtc_base/testbase64.h" @@ -430,10 +429,10 @@ TEST(Base64, EncodeDecodeBattery) { // try putting some extra stuff after the equals signs, or in between them if (equals == 2) { - sprintfn(first_equals, 6, " = = "); + snprintf(first_equals, 6, " = = "); len = first_equals - encode_buffer + 5; } else { - sprintfn(first_equals, 6, " = "); + snprintf(first_equals, 6, " = "); len = first_equals - encode_buffer + 3; } decoded2.assign("this junk should be ignored"); diff --git a/rtc_base/event_tracer.cc b/rtc_base/event_tracer.cc index 31f4271d31..c61def9e07 100644 --- a/rtc_base/event_tracer.cc +++ b/rtc_base/event_tracer.cc @@ -20,7 +20,6 @@ #include "rtc_base/event.h" #include "rtc_base/logging.h" #include "rtc_base/platform_thread.h" -#include "rtc_base/stringutils.h" #include "rtc_base/timeutils.h" #include "rtc_base/trace_event.h" @@ -286,19 +285,19 @@ class EventLogger final { } break; case TRACE_VALUE_TYPE_UINT: - print_length = sprintfn(&output[0], kTraceArgBufferLength, "%llu", + print_length = snprintf(&output[0], kTraceArgBufferLength, "%llu", arg.value.as_uint); break; case TRACE_VALUE_TYPE_INT: - print_length = sprintfn(&output[0], kTraceArgBufferLength, "%lld", + print_length = snprintf(&output[0], kTraceArgBufferLength, "%lld", arg.value.as_int); break; case TRACE_VALUE_TYPE_DOUBLE: - print_length = sprintfn(&output[0], kTraceArgBufferLength, "%f", + print_length = snprintf(&output[0], kTraceArgBufferLength, "%f", arg.value.as_double); break; case TRACE_VALUE_TYPE_POINTER: - print_length = sprintfn(&output[0], kTraceArgBufferLength, "\"%p\"", + print_length = snprintf(&output[0], kTraceArgBufferLength, "\"%p\"", arg.value.as_pointer); break; } diff --git a/rtc_base/httpcommon.cc b/rtc_base/httpcommon.cc index 43831b706f..baf843d07c 100644 --- a/rtc_base/httpcommon.cc +++ b/rtc_base/httpcommon.cc @@ -32,7 +32,6 @@ #include "rtc_base/messagedigest.h" #include "rtc_base/socketaddress.h" #include "rtc_base/strings/string_builder.h" -#include "rtc_base/stringutils.h" // for strcpyn, _stricmp #include "rtc_base/third_party/base64/base64.h" // for Base64 #include "rtc_base/zero_memory.h" // for ExplicitZeroMemory @@ -377,7 +376,7 @@ HttpAuthResult HttpAuthenticate(const char* challenge, return HAR_IGNORE; } #else - sprintfn(spn, MAX_SPN, "HTTP/%s", server.ToString().c_str()); + snprintf(spn, MAX_SPN, "HTTP/%s", server.ToString().c_str()); #endif SecBuffer out_sec; diff --git a/rtc_base/ipaddress.cc b/rtc_base/ipaddress.cc index c52c9a4add..9967ff3237 100644 --- a/rtc_base/ipaddress.cc +++ b/rtc_base/ipaddress.cc @@ -162,11 +162,10 @@ std::string IPAddress::ToSensitiveString() const { std::string result; result.resize(INET6_ADDRSTRLEN); in6_addr addr = ipv6_address(); - size_t len = - rtc::sprintfn(&(result[0]), result.size(), "%x:%x:%x:x:x:x:x:x", - (addr.s6_addr[0] << 8) + addr.s6_addr[1], - (addr.s6_addr[2] << 8) + addr.s6_addr[3], - (addr.s6_addr[4] << 8) + addr.s6_addr[5]); + size_t len = snprintf(&(result[0]), result.size(), "%x:%x:%x:x:x:x:x:x", + (addr.s6_addr[0] << 8) + addr.s6_addr[1], + (addr.s6_addr[2] << 8) + addr.s6_addr[3], + (addr.s6_addr[4] << 8) + addr.s6_addr[5]); result.resize(len); return result; } diff --git a/rtc_base/location.cc b/rtc_base/location.cc index 9c90d9ec17..c95ad9c488 100644 --- a/rtc_base/location.cc +++ b/rtc_base/location.cc @@ -10,8 +10,6 @@ #include "rtc_base/location.h" -#include "rtc_base/stringutils.h" - namespace rtc { Location::Location(const char* function_name, const char* file_and_line) @@ -31,7 +29,7 @@ Location& Location::operator=(const Location& other) { std::string Location::ToString() const { char buf[256]; - sprintfn(buf, sizeof(buf), "%s@%s", function_name_, file_and_line_); + snprintf(buf, sizeof(buf), "%s@%s", function_name_, file_and_line_); return buf; } diff --git a/rtc_base/stringutils.h b/rtc_base/stringutils.h index 2d9228b704..75436b19cd 100644 --- a/rtc_base/stringutils.h +++ b/rtc_base/stringutils.h @@ -141,32 +141,6 @@ size_t strcatn(CTYPE* buffer, return bufpos + strcpyn(buffer + bufpos, buflen - bufpos, source, srclen); } -// Some compilers (clang specifically) require vsprintfn be defined before -// sprintfn. -template -size_t vsprintfn(CTYPE* buffer, - size_t buflen, - const CTYPE* format, - va_list args) { - int len = vsnprintf(buffer, buflen, format, args); - if ((len < 0) || (static_cast(len) >= buflen)) { - len = static_cast(buflen - 1); - buffer[len] = 0; - } - return len; -} - -template -size_t sprintfn(CTYPE* buffer, size_t buflen, const CTYPE* format, ...); -template -size_t sprintfn(CTYPE* buffer, size_t buflen, const CTYPE* format, ...) { - va_list args; - va_start(args, format); - size_t len = vsprintfn(buffer, buflen, format, args); - va_end(args); - return len; -} - /////////////////////////////////////////////////////////////////////////////// // Traits specializations /////////////////////////////////////////////////////////////////////////////// diff --git a/rtc_base/testutils.h b/rtc_base/testutils.h index 2ab4a35956..25e1edcf0c 100644 --- a/rtc_base/testutils.h +++ b/rtc_base/testutils.h @@ -21,7 +21,6 @@ #include "rtc_base/checks.h" #include "rtc_base/gunit.h" #include "rtc_base/stream.h" -#include "rtc_base/stringutils.h" namespace webrtc { namespace testing { @@ -164,7 +163,7 @@ class StreamSource : public StreamInterface { va_list args; va_start(args, format); char buffer[1024]; - size_t len = vsprintfn(buffer, sizeof(buffer), format, args); + size_t len = vsnprintf(buffer, sizeof(buffer), format, args); RTC_CHECK(len < sizeof(buffer) - 1); va_end(args); QueueData(buffer, len); diff --git a/rtc_base/thread.cc b/rtc_base/thread.cc index 8b0ef41dc6..b6c6a47a34 100644 --- a/rtc_base/thread.cc +++ b/rtc_base/thread.cc @@ -29,7 +29,6 @@ #include "rtc_base/checks.h" #include "rtc_base/logging.h" #include "rtc_base/nullsocketserver.h" -#include "rtc_base/stringutils.h" #include "rtc_base/timeutils.h" #include "rtc_base/trace_event.h" @@ -221,8 +220,10 @@ bool Thread::SetName(const std::string& name, const void* obj) { name_ = name; if (obj) { - char buf[16]; - sprintfn(buf, sizeof(buf), " 0x%p", obj); + // The %p specifier typically produce at most 16 hex digits, possibly with a + // 0x prefix. But format is implementation defined, so add some margin. + char buf[30]; + snprintf(buf, sizeof(buf), " 0x%p", obj); name_ += buf; } return true; diff --git a/rtc_base/win32.cc b/rtc_base/win32.cc index d81d685f16..e13875283e 100644 --- a/rtc_base/win32.cc +++ b/rtc_base/win32.cc @@ -72,9 +72,9 @@ const char* inet_ntop_v4(const void* src, char* dst, socklen_t size) { } const struct in_addr* as_in_addr = reinterpret_cast(src); - rtc::sprintfn(dst, size, "%d.%d.%d.%d", as_in_addr->S_un.S_un_b.s_b1, - as_in_addr->S_un.S_un_b.s_b2, as_in_addr->S_un.S_un_b.s_b3, - as_in_addr->S_un.S_un_b.s_b4); + snprintf(dst, size, "%d.%d.%d.%d", as_in_addr->S_un.S_un_b.s_b1, + as_in_addr->S_un.S_un_b.s_b2, as_in_addr->S_un.S_un_b.s_b3, + as_in_addr->S_un.S_un_b.s_b4); return dst; } @@ -127,7 +127,7 @@ const char* inet_ntop_v6(const void* src, char* dst, socklen_t size) { *cursor++ = ':'; *cursor++ = ':'; if (maxpos == 4) { - cursor += rtc::sprintfn(cursor, INET6_ADDRSTRLEN - 2, "ffff:"); + cursor += snprintf(cursor, INET6_ADDRSTRLEN - 2, "ffff:"); } const struct in_addr* as_v4 = reinterpret_cast(&(as_shorts[6])); @@ -136,8 +136,8 @@ const char* inet_ntop_v6(const void* src, char* dst, socklen_t size) { } else { for (int i = 0; i < run_array_size; ++i) { if (runpos[i] == -1) { - cursor += rtc::sprintfn(cursor, INET6_ADDRSTRLEN - (cursor - dst), "%x", - NetworkToHost16(as_shorts[i])); + cursor += snprintf(cursor, INET6_ADDRSTRLEN - (cursor - dst), "%x", + NetworkToHost16(as_shorts[i])); if (i != 7 && runpos[i + 1] != 1) { *cursor++ = ':'; }