WebRtcVideoChannelBaseTest.InvalidRecvBufferSize: fix UAF.

The test could cause a UAF as the test exits while the lambda is
still running. Only seems to happen on Linux for some reason.

Bug: webrtc:12854
Change-Id: Ie0c0de09b675ef93dc195a6470752a772083029e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/238425
Auto-Submit: Markus Handell <handellm@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35389}
diff --git a/media/engine/webrtc_video_engine_unittest.cc b/media/engine/webrtc_video_engine_unittest.cc
index 01ba354..7635bcc 100644
--- a/media/engine/webrtc_video_engine_unittest.cc
+++ b/media/engine/webrtc_video_engine_unittest.cc
@@ -1850,10 +1850,11 @@
     // This particular hack, pauses the transport controller TQ while we
     // change the field trial.
     rtc::TaskQueue* tq = call_->GetTransportControllerSend()->GetWorkerQueue();
-    rtc::Event waiting, resume;
-    tq->PostTask([&waiting, &resume]() {
+    rtc::Event waiting, resume, conclude;
+    tq->PostTask([&waiting, &resume, &conclude]() {
       waiting.Set();
       resume.Wait(rtc::Event::kForever);
+      conclude.Set();
     });
 
     waiting.Wait(rtc::Event::kForever);
@@ -1862,6 +1863,8 @@
 
     SetUp();
     resume.Set();
+    // Ensure we don't cause a UAF as the test scope exits.
+    conclude.Wait(rtc::Event::kForever);
 
     // OK, now the test can carry on.