From ca5f21e2934bddb5a44f7a6f3b37d1c37837c86e Mon Sep 17 00:00:00 2001 From: Ruslan Burakov Date: Wed, 10 Jul 2019 16:08:48 +0200 Subject: [PATCH] Make force_fieldtrials persistent string during entire program live. absl::GetFlag creates temporary string which is destroyed and c_str() points to wrong/empty place. Bug: webrtc:10616 Change-Id: Ie17f1530b1042978da78c79bb6754a65ff4e21eb Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/145210 Commit-Queue: Ruslan Burakov Reviewed-by: Mirko Bonadei Reviewed-by: Ivo Creusen Cr-Commit-Position: refs/heads/master@{#28529} --- modules/audio_coding/neteq/tools/neteq_rtpplay.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/audio_coding/neteq/tools/neteq_rtpplay.cc b/modules/audio_coding/neteq/tools/neteq_rtpplay.cc index ceebfd545f..53744eaa76 100644 --- a/modules/audio_coding/neteq/tools/neteq_rtpplay.cc +++ b/modules/audio_coding/neteq/tools/neteq_rtpplay.cc @@ -336,8 +336,12 @@ int main(int argc, char* argv[]) { RTC_CHECK(ValidateExtensionId(absl::GetFlag(FLAGS_video_content_type))); RTC_CHECK(ValidateExtensionId(absl::GetFlag(FLAGS_video_timing))); - webrtc::field_trial::InitFieldTrialsFromString( - absl::GetFlag(FLAGS_force_fieldtrials).c_str()); + // Make force_fieldtrials persistent string during entire program live as + // absl::GetFlag creates temporary string and c_str() will point to + // deallocated string. + const std::string force_fieldtrials = absl::GetFlag(FLAGS_force_fieldtrials); + webrtc::field_trial::InitFieldTrialsFromString(force_fieldtrials.c_str()); + webrtc::test::NetEqTestFactory::Config config; config.pcmu = absl::GetFlag(FLAGS_pcmu); config.pcma = absl::GetFlag(FLAGS_pcma);