summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/moz-patch-stack/0022.patch
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/libwebrtc/moz-patch-stack/0022.patch')
-rw-r--r--third_party/libwebrtc/moz-patch-stack/0022.patch26
1 files changed, 26 insertions, 0 deletions
diff --git a/third_party/libwebrtc/moz-patch-stack/0022.patch b/third_party/libwebrtc/moz-patch-stack/0022.patch
new file mode 100644
index 0000000000..bdfebdd8b5
--- /dev/null
+++ b/third_party/libwebrtc/moz-patch-stack/0022.patch
@@ -0,0 +1,26 @@
+From: Dan Minor <dminor@mozilla.com>
+Date: Wed, 9 Oct 2019 20:12:00 +0000
+Subject: Bug 1587159 - Fix undefined shift in g722_encode.c; r=ng
+
+Left shifting a negative value results in undefined behaviour. It is safer to
+multiply in this case.
+
+Differential Revision: https://phabricator.services.mozilla.com/D48751
+Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/385d660fac359c907986e08d1d89ab5a353f30b2
+---
+ modules/third_party/g722/g722_encode.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/third_party/g722/g722_encode.c b/modules/third_party/g722/g722_encode.c
+index 10a5bcfe7c..fedf9f5961 100644
+--- a/modules/third_party/g722/g722_encode.c
++++ b/modules/third_party/g722/g722_encode.c
+@@ -74,7 +74,7 @@ static void block4(G722EncoderState *s, int band, int d)
+ /* Block 4, UPPOL2 */
+ for (i = 0; i < 3; i++)
+ s->band[band].sg[i] = s->band[band].p[i] >> 15;
+- wd1 = saturate(s->band[band].a[1] << 2);
++ wd1 = saturate(s->band[band].a[1] * 4);
+
+ wd2 = (s->band[band].sg[0] == s->band[band].sg[1]) ? -wd1 : wd1;
+ if (wd2 > 32767)