summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/moz-patch-stack/0085.patch
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /third_party/libwebrtc/moz-patch-stack/0085.patch
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/libwebrtc/moz-patch-stack/0085.patch')
-rw-r--r--third_party/libwebrtc/moz-patch-stack/0085.patch39
1 files changed, 39 insertions, 0 deletions
diff --git a/third_party/libwebrtc/moz-patch-stack/0085.patch b/third_party/libwebrtc/moz-patch-stack/0085.patch
new file mode 100644
index 0000000000..fe0fd9a95c
--- /dev/null
+++ b/third_party/libwebrtc/moz-patch-stack/0085.patch
@@ -0,0 +1,39 @@
+From: Byron Campen <docfaraday@gmail.com>
+Date: Thu, 20 Jul 2023 14:24:00 +0000
+Subject: Bug 1838080: Work around a race in
+ ChannelSendFrameTransformerDelegate. r=pehrsons,webrtc-reviewers
+
+This variable can be null when a ChannelSendFrameTransformerDelegate is in use,
+because that does an async dispatch to the encoder queue in the handling for
+transformed frames. If this is unset while that dispatch is in flight, we
+nullptr crash.
+
+Differential Revision: https://phabricator.services.mozilla.com/D180735
+Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/56555ecee7f36ae73abff1cbbd06807c2b65fc19
+---
+ audio/channel_send.cc | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/audio/channel_send.cc b/audio/channel_send.cc
+index 2b64569fdd..ee94760b6f 100644
+--- a/audio/channel_send.cc
++++ b/audio/channel_send.cc
+@@ -281,12 +281,16 @@ class RtpPacketSenderProxy : public RtpPacketSender {
+ void EnqueuePackets(
+ std::vector<std::unique_ptr<RtpPacketToSend>> packets) override {
+ MutexLock lock(&mutex_);
+- rtp_packet_pacer_->EnqueuePackets(std::move(packets));
++ if (rtp_packet_pacer_) {
++ rtp_packet_pacer_->EnqueuePackets(std::move(packets));
++ }
+ }
+
+ void RemovePacketsForSsrc(uint32_t ssrc) override {
+ MutexLock lock(&mutex_);
+- rtp_packet_pacer_->RemovePacketsForSsrc(ssrc);
++ if (rtp_packet_pacer_) {
++ rtp_packet_pacer_->RemovePacketsForSsrc(ssrc);
++ }
+ }
+
+ private: