sci-libs/gdal: add security patches
authorAmy Liffey <amynka@gentoo.org>
Sun, 12 Aug 2018 18:33:12 +0000 (19:33 +0100)
committerAmy Liffey <amynka@gentoo.org>
Sun, 12 Aug 2018 19:15:39 +0000 (20:15 +0100)
Bug: https://bugs.gentoo.org/621712
Bug: https://bugs.gentoo.org/621720
Bug: https://bugs.gentoo.org/623028
Package-Manager: Portage-2.3.40, Repoman-2.3.9

sci-libs/gdal/files/gdal-2.3.0-changeset_38658.patch [new file with mode: 0644]
sci-libs/gdal/files/gdal-2.3.0-frmts-nitf38234.patch [new file with mode: 0644]
sci-libs/gdal/files/gdal-2.3.0-libtiff.patch [new file with mode: 0644]
sci-libs/gdal/gdal-2.3.0-r2.ebuild [moved from sci-libs/gdal/gdal-2.3.0-r1.ebuild with 97% similarity]

diff --git a/sci-libs/gdal/files/gdal-2.3.0-changeset_38658.patch b/sci-libs/gdal/files/gdal-2.3.0-changeset_38658.patch
new file mode 100644 (file)
index 0000000..3f68183
--- /dev/null
@@ -0,0 +1,80 @@
+Index: /trunk/gdal/frmts/nitf/nitfrasterband.cpp\r
+===================================================================\r
+--- a/frmts/nitf/nitfrasterband.cpp    (revision 38657)\r
++++ b/frmts/nitf/nitfrasterband.cpp    (revision 38658)\r
+@@ -824,4 +826,20 @@\r
+         pUnpackData[i+7] = ((pDataSrc[k+2]) & 0x7);\r
+       }\r
++      if( i < n )\r
++      {\r
++        pUnpackData[i+0] = ((pDataSrc[k+0] >> 5));\r
++        if( i + 1 < n )\r
++            pUnpackData[i+1] = ((pDataSrc[k+0] >> 2) & 0x07);\r
++        if( i + 2 < n )\r
++            pUnpackData[i+2] = ((pDataSrc[k+0] << 1) & 0x07) | (pDataSrc[k+1] >> 7);\r
++        if( i + 3 < n )\r
++            pUnpackData[i+3] = ((pDataSrc[k+1] >> 4) & 0x07);\r
++        if( i + 4 < n )\r
++            pUnpackData[i+4] = ((pDataSrc[k+1] >> 1) & 0x07);\r
++        if( i + 5 < n )\r
++            pUnpackData[i+5] = ((pDataSrc[k+1] << 2) & 0x07) | (pDataSrc[k+2] >> 6);\r
++        if( i + 6 < n )\r
++            pUnpackData[i+6] = ((pDataSrc[k+2] >> 3) & 0x07);\r
++      }\r
\r
+       memcpy(pData, pUnpackData, n);\r
+@@ -842,4 +862,20 @@\r
+         pUnpackData[i+7] = ((pDataSrc[k+4]) & 0x1f);\r
+       }\r
++      if( i < n )\r
++      {\r
++        pUnpackData[i+0] = ((pDataSrc[k+0] >> 3));\r
++        if( i + 1 < n )\r
++            pUnpackData[i+1] = ((pDataSrc[k+0] << 2) & 0x1f) | (pDataSrc[k+1] >> 6);\r
++        if( i + 2 < n )\r
++            pUnpackData[i+2] = ((pDataSrc[k+1] >> 1) & 0x1f);\r
++        if( i + 3 < n )\r
++            pUnpackData[i+3] = ((pDataSrc[k+1] << 4) & 0x1f) | (pDataSrc[k+2] >> 4);\r
++        if( i + 4 < n )\r
++            pUnpackData[i+4] = ((pDataSrc[k+2] << 1) & 0x1f) | (pDataSrc[k+3] >> 7);\r
++        if( i + 5 < n )\r
++            pUnpackData[i+5] = ((pDataSrc[k+3] >> 2) & 0x1f);\r
++        if( i + 6 < n )\r
++            pUnpackData[i+6] = ((pDataSrc[k+3] << 3) & 0x1f) | (pDataSrc[k+4] >> 5);\r
++      }\r
\r
+       memcpy(pData, pUnpackData, n);\r
+@@ -856,4 +894,12 @@\r
+         pUnpackData[i+3] = ((pDataSrc[k+2]) & 0x3f);\r
+       }\r
++      if( i < n )\r
++      {\r
++        pUnpackData[i+0] = ((pDataSrc[k+0] >> 2));\r
++        if( i + 1 < n )\r
++            pUnpackData[i+1] = ((pDataSrc[k+0] << 4) & 0x3f) | (pDataSrc[k+1] >> 4);\r
++        if( i + 2 < n )\r
++            pUnpackData[i+2] = ((pDataSrc[k+1] << 2) & 0x3f) | (pDataSrc[k+2] >> 6);\r
++      }\r
\r
+       memcpy(pData, pUnpackData, n);\r
+@@ -873,4 +921,20 @@\r
+         pUnpackData[i+6] = ((pDataSrc[k+5] << 1) & 0x7f) | (pDataSrc[k+6] >> 7);\r
+         pUnpackData[i+7] = ((pDataSrc[k+6]) & 0x7f);\r
++      }\r
++      if( i < n )\r
++      {\r
++        pUnpackData[i+0] = ((pDataSrc[k+0] >> 1));\r
++        if( i + 1 < n )\r
++            pUnpackData[i+1] = ((pDataSrc[k+0] << 6) & 0x7f) | (pDataSrc[k+1] >> 2);\r
++        if( i + 2 < n )\r
++            pUnpackData[i+2] = ((pDataSrc[k+1] << 5) & 0x7f) | (pDataSrc[k+2] >> 3) ;\r
++        if( i + 3 < n )\r
++            pUnpackData[i+3] = ((pDataSrc[k+2] << 4) & 0x7f) | (pDataSrc[k+3] >> 4);\r
++        if( i + 4 < n )\r
++            pUnpackData[i+4] = ((pDataSrc[k+3] << 3) & 0x7f) | (pDataSrc[k+4] >> 5);\r
++        if( i + 5 < n )\r
++            pUnpackData[i+5] = ((pDataSrc[k+4] << 2) & 0x7f) | (pDataSrc[k+5] >> 6);\r
++        if( i + 6 < n )\r
++            pUnpackData[i+6] = ((pDataSrc[k+5] << 1) & 0x7f) | (pDataSrc[k+6] >> 7);\r
+       }\r
\r
diff --git a/sci-libs/gdal/files/gdal-2.3.0-frmts-nitf38234.patch b/sci-libs/gdal/files/gdal-2.3.0-frmts-nitf38234.patch
new file mode 100644 (file)
index 0000000..783752e
--- /dev/null
@@ -0,0 +1,12 @@
+Index: trunk/gdal/frmts/nitf/nitffile.c\r
+===================================================================\r
+--- a/frmts/nitf/nitffile.c    (revision 38085)\r
++++ b/frmts/nitf/nitffile.c    (revision 38234)\r
+@@ -350,5 +350,6 @@\r
+     if (nOffset != -1)\r
+         nOffset = NITFCollectSegmentInfo( psFile, nHeaderLen, nOffset, "RE", 4, 7, &nNextData);\r
+-    else\r
++\r
++    if( nOffset < 0 )\r
+     {\r
+         NITFClose(psFile);\r
diff --git a/sci-libs/gdal/files/gdal-2.3.0-libtiff.patch b/sci-libs/gdal/files/gdal-2.3.0-libtiff.patch
new file mode 100644 (file)
index 0000000..5964165
--- /dev/null
@@ -0,0 +1,12 @@
+--- ./frmts/gtiff/libtiff/tif_read.c.old       2018-08-11 09:12:42.378891934 +0100
++++ ./frmts/gtiff/libtiff/tif_read.c   2018-08-11 09:15:37.330882891 +0100
+@@ -296,7 +296,8 @@
+         }
+         else
+         {
+-                return 1;
++              tif->tif_rawcc = tif->tif_rawdataloaded;
++              return 1;
+         }
+ }
similarity index 97%
rename from sci-libs/gdal/gdal-2.3.0-r1.ebuild
rename to sci-libs/gdal/gdal-2.3.0-r2.ebuild
index 436c68a468d839e416bbed31a50583ab9b0db30a..3762e5d262c3ac67f70a8e71312d9626a350fb25 100644 (file)
@@ -82,6 +82,10 @@ PATCHES=(
        "${FILESDIR}/${PN}-2.2.3-bashcomp-path.patch" # bug 641866
        "${FILESDIR}/${PN}-2.2.3-goocast.patch" # bug 656252
        "${FILESDIR}/${PN}-2.3.0-curl.patch" # bug 659840
+       # Security bugs
+       "${FILESDIR}/${P}-libtiff.patch" # bug 621712
+       "${FILESDIR}/${P}-frmts-nitf38234.patch" # bug 621720
+       "${FILESDIR}/${P}-changeset_38658.patch" # bug 623028
 )
 
 src_prepare() {
@@ -305,6 +309,7 @@ src_install() {
        fi
 
        doman "${S}"/man/man*/*
+       find "${ED}" -name '*.la' -delete || die
 }
 
 pkg_postinst() {