Fix HexEncodeTest.TestZeroLengthNoDelimiter with enable_iterator_debugging=true
Fix HexEncodeTest.TestZeroLengthNoDelimiter with enable_iterator_debugging=true,
use_custom_libcxx=false on Windows.
When passed empty string, hex_encode_with_delimiter would dereference
std::string::end() iterator in expression &*s.begin();
Bug: webrtc:10927
Change-Id: I27ce5fecf1f2a5c49a1b85bb94e1dcc92c4c3697
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150651
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Yves Gerey <yvesg@google.com>
Commit-Queue: Kimmo Kinnunen FI <kkinnunen@nvidia.com>
Cr-Commit-Position: refs/heads/master@{#29009}
diff --git a/rtc_base/string_encode.cc b/rtc_base/string_encode.cc
index da31ac0..1570b93 100644
--- a/rtc_base/string_encode.cc
+++ b/rtc_base/string_encode.cc
@@ -89,9 +89,7 @@
size_t srclen,
char delimiter) {
std::string s(hex_encode_output_length(srclen, delimiter), 0);
- // TODO(nisse): When we can use C++17, switch the below hack with begin to
- // just s.data().
- hex_encode_with_delimiter(&*s.begin(), source, srclen, delimiter);
+ hex_encode_with_delimiter(&s[0], source, srclen, delimiter);
return s;
}