[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