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}
This commit is contained in:
Kimmo Kinnunen 2019-08-29 16:22:39 +03:00 committed by Commit Bot
parent 8226875e6c
commit 022a7c8d49

View file

@ -89,9 +89,7 @@ std::string hex_encode_with_delimiter(const char* source,
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;
}