Adopt absl::string_view in rtc_base/string_utils*

Bug: webrtc:13579
Change-Id: I2def83ae546156ff0ec8ef000b7ed0c48d15777c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/256721
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Ali Tofigh <alito@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36329}
This commit is contained in:
Ali Tofigh 2022-03-25 00:08:32 +01:00 committed by WebRTC LUCI CQ
parent 58d861c47f
commit e5b2220650
3 changed files with 7 additions and 15 deletions

View file

@ -282,7 +282,7 @@ HttpAuthResult HttpAuthenticate(const char* challenge,
// std::string decoded = username + ":" + password;
size_t len = username.size() + password.GetLength() + 2;
char* sensitive = new char[len];
size_t pos = strcpyn(sensitive, len, username.data(), username.size());
size_t pos = strcpyn(sensitive, len, username);
pos += strcpyn(sensitive + pos, len - pos, ":");
password.CopyTo(sensitive + pos, true);
@ -322,9 +322,9 @@ HttpAuthResult HttpAuthenticate(const char* challenge,
// std::string A1 = username + ":" + realm + ":" + password;
size_t len = username.size() + realm.size() + password.GetLength() + 3;
char* sensitive = new char[len]; // A1
size_t pos = strcpyn(sensitive, len, username.data(), username.size());
size_t pos = strcpyn(sensitive, len, username);
pos += strcpyn(sensitive + pos, len - pos, ":");
pos += strcpyn(sensitive + pos, len - pos, realm.c_str());
pos += strcpyn(sensitive + pos, len - pos, realm);
pos += strcpyn(sensitive + pos, len - pos, ":");
password.CopyTo(sensitive + pos, true);

View file

@ -14,20 +14,15 @@
namespace rtc {
size_t strcpyn(char* buffer,
size_t buflen,
const char* source,
size_t srclen /* = SIZE_UNKNOWN */) {
size_t strcpyn(char* buffer, size_t buflen, absl::string_view source) {
if (buflen <= 0)
return 0;
if (srclen == SIZE_UNKNOWN) {
srclen = strlen(source);
}
size_t srclen = source.length();
if (srclen >= buflen) {
srclen = buflen - 1;
}
memcpy(buffer, source, srclen);
memcpy(buffer, source.data(), srclen);
buffer[srclen] = 0;
return srclen;
}

View file

@ -51,10 +51,7 @@ struct AbslStringViewCmp {
};
// Safe version of strncpy that always nul-terminate.
size_t strcpyn(char* buffer,
size_t buflen,
const char* source,
size_t srclen = SIZE_UNKNOWN);
size_t strcpyn(char* buffer, size_t buflen, absl::string_view source);
///////////////////////////////////////////////////////////////////////////////
// UTF helpers (Windows only)