[SCM] x265/master: Upstream patch for CVE-2017-13135
sramacher at users.alioth.debian.org
sramacher at users.alioth.debian.org
Sun Dec 31 12:16:07 UTC 2017
The following commit has been merged in the master branch:
commit f822f1079c0fb4642b9fc55197413bb2ce230ef3
Author: Sebastian Ramacher <sramacher at debian.org>
Date: Sun Dec 31 12:53:26 2017 +0100
Upstream patch for CVE-2017-13135
diff --git a/debian/patches/0003-Fix-possible-NULL-pointer-dereferencing-in-cudata-in.patch b/debian/patches/0003-Fix-possible-NULL-pointer-dereferencing-in-cudata-in.patch
new file mode 100644
index 0000000..58e005f
--- /dev/null
+++ b/debian/patches/0003-Fix-possible-NULL-pointer-dereferencing-in-cudata-in.patch
@@ -0,0 +1,61 @@
+From: Santhoshini Sekar <santhoshini at multicorewareinc.com>
+Date: Sun, 31 Dec 2017 12:53:00 +0100
+Subject: Fix possible NULL pointer dereferencing in cudata init
+
+---
+ source/common/framedata.cpp | 11 ++++++-----
+ source/encoder/analysis.cpp | 17 +++++++++--------
+ 2 files changed, 15 insertions(+), 13 deletions(-)
+
+diff --git a/source/common/framedata.cpp b/source/common/framedata.cpp
+index 6292b9f..e0ecd57 100644
+--- a/source/common/framedata.cpp
++++ b/source/common/framedata.cpp
+@@ -40,11 +40,12 @@ bool FrameData::create(const x265_param& param, const SPS& sps, int csp)
+ m_spsrpsIdx = -1;
+ if (param.rc.bStatWrite)
+ m_spsrps = const_cast<RPS*>(sps.spsrps);
+-
+- m_cuMemPool.create(0, param.internalCsp, sps.numCUsInFrame, param);
+- for (uint32_t ctuAddr = 0; ctuAddr < sps.numCUsInFrame; ctuAddr++)
+- m_picCTU[ctuAddr].initialize(m_cuMemPool, 0, param, ctuAddr);
+-
++ bool isallocated = m_cuMemPool.create(0, param.internalCsp, sps.numCUsInFrame, param);
++ if (isallocated)
++ for (uint32_t ctuAddr = 0; ctuAddr < sps.numCUsInFrame; ctuAddr++)
++ m_picCTU[ctuAddr].initialize(m_cuMemPool, 0, param, ctuAddr);
++ else
++ return false;
+ CHECKED_MALLOC_ZERO(m_cuStat, RCStatCU, sps.numCUsInFrame);
+ CHECKED_MALLOC(m_rowStat, RCStatRow, sps.numCuInHeight);
+ reinit(sps);
+diff --git a/source/encoder/analysis.cpp b/source/encoder/analysis.cpp
+index e3d21bf..86436c8 100644
+--- a/source/encoder/analysis.cpp
++++ b/source/encoder/analysis.cpp
+@@ -100,16 +100,17 @@ bool Analysis::create(ThreadLocalData *tld)
+ for (uint32_t depth = 0; depth <= m_param->maxCUDepth; depth++, cuSize >>= 1)
+ {
+ ModeDepth &md = m_modeDepth[depth];
+-
+- md.cuMemPool.create(depth, csp, MAX_PRED_TYPES, *m_param);
++ ok &= md.cuMemPool.create(depth, csp, MAX_PRED_TYPES, *m_param);
+ ok &= md.fencYuv.create(cuSize, csp);
+-
+- for (int j = 0; j < MAX_PRED_TYPES; j++)
++ if (ok)
+ {
+- md.pred[j].cu.initialize(md.cuMemPool, depth, *m_param, j);
+- ok &= md.pred[j].predYuv.create(cuSize, csp);
+- ok &= md.pred[j].reconYuv.create(cuSize, csp);
+- md.pred[j].fencYuv = &md.fencYuv;
++ for (int j = 0; j < MAX_PRED_TYPES; j++)
++ {
++ md.pred[j].cu.initialize(md.cuMemPool, depth, *m_param, j);
++ ok &= md.pred[j].predYuv.create(cuSize, csp);
++ ok &= md.pred[j].reconYuv.create(cuSize, csp);
++ md.pred[j].fencYuv = &md.fencYuv;
++ }
+ }
+ }
+ if (m_param->sourceHeight >= 1080)
diff --git a/debian/patches/series b/debian/patches/series
index 27e6795..8f89e7f 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1,3 @@
0001-Fix-arm-flags.patch
0002-Detect-x32-handle-as-non-x86-and-no-ASM-for-now-but-.patch
+0003-Fix-possible-NULL-pointer-dereferencing-in-cudata-in.patch
--
x265 packaging
More information about the pkg-multimedia-commits
mailing list