[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#988269: unblock: file-roller/3.38.1-1



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
X-Debbugs-Cc: carnil@debian.org,seb128@ubuntu.com

Hi Release team,

Please unblock package file-roller

file-roller uploadeds as 3.38.1-1 contains the 3.38.1 bugfix release
which includes 

+  * libarchive: Skip files with symlinks in parents. (Ondrej Holy) (!108)

(which is CVE-2020-36314) and

+  * Fix use-after-free in error message reporting. (Badel2)

Additionally there are updated application translations, new or
updated manual translations.

Can you consider unblocking it? I did not perform the upload, which
was done by the package maintainer, but noticed the needed unblock
while reviewing uploads including security fixes.

I'm attaching (a filtered, expluding the '*.po files).

Regards,
Salvatore
diff -Nru file-roller-3.38.0/NEWS file-roller-3.38.1/NEWS
--- file-roller-3.38.0/NEWS	2020-09-12 21:05:43.792812000 +0200
+++ file-roller-3.38.1/NEWS	2021-04-11 17:45:18.127801000 +0200
@@ -1,3 +1,37 @@
+version 3.38.1
+--------------
+
+ Bugs fixed:
+
+  * libarchive: Skip files with symlinks in parents. (Ondrej Holy) (!108)
+  * Fix use-after-free in error message reporting. (Badel2)
+
+ New or updated application translations:
+
+  * Catalan (Gil Forcada)
+  * Chinese (Cheng-Chia Tseng)
+  * Danish (Ask Hjorth Larsen)
+  * Hebrew (Yosef Or Boczko)
+  * Norwegian bokmål (Åka Sikrom)
+  * Portuguese (Hugo Carvalho)
+  * Proxecto Trasno (Fran Dieguez)
+  * Punjabi (A S Alam)
+  * Vietnamese (Trần Ngọc Quân)
+
+ New or updated manual translations:
+
+  * Catalan (Manel Vidal)
+  * Danish (Ask Hjorth Larsen)
+  * French (Guillaume Bernard)
+  * Galician (Fran Dieguez)
+  * Hungarian (Balázs Úr)
+  * Indonesian (Andika Triwidada)
+  * Korea (Seong-ho Cho)
+  * Polish (Piotr Drąg)
+  * Swedish (Anders Jonsson)
+  * Turkish (Sabri Ünal)
+  * Ukrainian (Yuri Chornoivan)
+
 version 3.38.0
 --------------
 
diff -Nru file-roller-3.38.0/data/org.gnome.FileRoller.appdata.xml.in file-roller-3.38.1/data/org.gnome.FileRoller.appdata.xml.in
--- file-roller-3.38.0/data/org.gnome.FileRoller.appdata.xml.in	2020-09-12 21:05:43.792812000 +0200
+++ file-roller-3.38.1/data/org.gnome.FileRoller.appdata.xml.in	2021-04-11 17:45:18.127801000 +0200
@@ -46,4 +46,11 @@
   <provides>
     <id>org.gnome.FileRoller.desktop</id>
   </provides>
+
+  <releases>
+    <release version="3.38.0" date="2020-09-12"/>
+    <release version="3.36.3" date="2020-08-08"/>
+  </releases>
+
+  <content_rating type="oars-1.1" />
 </component>
diff -Nru file-roller-3.38.0/debian/changelog file-roller-3.38.1/debian/changelog
--- file-roller-3.38.0/debian/changelog	2020-09-14 14:10:32.000000000 +0200
+++ file-roller-3.38.1/debian/changelog	2021-04-12 11:45:26.000000000 +0200
@@ -1,3 +1,9 @@
+file-roller (3.38.1-1) unstable; urgency=medium
+
+  * New upstream release including a fix for CVE-2020-36314
+
+ -- Sebastien Bacher <seb128@ubuntu.com>  Mon, 12 Apr 2021 11:45:26 +0200
+
 file-roller (3.38.0-1) unstable; urgency=medium
 
   * New upstream release
Binary files /tmp/qs62HkXZUC/file-roller-3.38.0/help/C/figures/file-roller-icon.png and /tmp/0CeKV7yUHu/file-roller-3.38.1/help/C/figures/file-roller-icon.png differ
diff -Nru file-roller-3.38.0/help/C/figures/org.gnome.ArchiveManager.svg file-roller-3.38.1/help/C/figures/org.gnome.ArchiveManager.svg
--- file-roller-3.38.0/help/C/figures/org.gnome.ArchiveManager.svg	1970-01-01 01:00:00.000000000 +0100
+++ file-roller-3.38.1/help/C/figures/org.gnome.ArchiveManager.svg	2021-04-11 17:45:18.127801000 +0200
@@ -0,0 +1,299 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:xlink="http://www.w3.org/1999/xlink";
+   viewBox="0 0 128 128"
+   style="display:inline;enable-background:new"
+   version="1.0"
+   id="svg11300"
+   height="128"
+   width="128">
+  <title
+     id="title4162">Adwaita Icon Template</title>
+  <defs
+     id="defs3">
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="268"
+       x2="115.82323"
+       y1="268"
+       x1="11.823223"
+       id="linearGradient1329"
+       xlink:href="#linearGradient1357" />
+    <linearGradient
+       id="linearGradient1357">
+      <stop
+         id="stop1345"
+         offset="0"
+         style="stop-color:#986a44;stop-opacity:1" />
+      <stop
+         style="stop-color:#cdab8f;stop-opacity:1"
+         offset="0.02884588"
+         id="stop1347" />
+      <stop
+         id="stop1349"
+         offset="0.05769204"
+         style="stop-color:#b5835a;stop-opacity:1" />
+      <stop
+         style="stop-color:#b5835a;stop-opacity:1"
+         offset="0.94230765"
+         id="stop1351" />
+      <stop
+         id="stop1353"
+         offset="0.97133332"
+         style="stop-color:#cdab8f;stop-opacity:1" />
+      <stop
+         id="stop1355"
+         offset="1"
+         style="stop-color:#986a44;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       y2="23"
+       x2="60"
+       y1="53.254841"
+       x1="70.586235"
+       gradientTransform="translate(0,170)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient1610"
+       xlink:href="#linearGradient1656" />
+    <linearGradient
+       id="linearGradient1656">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0"
+         id="stop1652" />
+      <stop
+         style="stop-color:#deddda;stop-opacity:1"
+         offset="1"
+         id="stop1654" />
+    </linearGradient>
+    <linearGradient
+       y2="268"
+       x2="68"
+       y1="268"
+       x1="60"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient1612"
+       xlink:href="#linearGradient1270" />
+    <linearGradient
+       id="linearGradient1270">
+      <stop
+         style="stop-color:#949390;stop-opacity:1;"
+         offset="0"
+         id="stop1258" />
+      <stop
+         id="stop1260"
+         offset="0.08333334"
+         style="stop-color:#d5d3cf;stop-opacity:1" />
+      <stop
+         style="stop-color:#949390;stop-opacity:1;"
+         offset="0.16666667"
+         id="stop1262" />
+      <stop
+         id="stop1264"
+         offset="0.83333331"
+         style="stop-color:#949390;stop-opacity:1;" />
+      <stop
+         style="stop-color:#d5d3cf;stop-opacity:1"
+         offset="0.91666669"
+         id="stop1266" />
+      <stop
+         style="stop-color:#949390;stop-opacity:1"
+         offset="1"
+         id="stop1268" />
+    </linearGradient>
+  </defs>
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>GNOME Design Team</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source />
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/"; />
+        <dc:title>Adwaita Icon Template</dc:title>
+        <dc:subject>
+          <rdf:Bag />
+        </dc:subject>
+        <dc:date />
+        <dc:rights>
+          <cc:Agent>
+            <dc:title />
+          </cc:Agent>
+        </dc:rights>
+        <dc:publisher>
+          <cc:Agent>
+            <dc:title />
+          </cc:Agent>
+        </dc:publisher>
+        <dc:identifier />
+        <dc:relation />
+        <dc:language />
+        <dc:coverage />
+        <dc:description />
+        <dc:contributor>
+          <cc:Agent>
+            <dc:title />
+          </cc:Agent>
+        </dc:contributor>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/by-sa/4.0/";>
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction"; />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution"; />
+        <cc:requires
+           rdf:resource="http://creativecommons.org/ns#Notice"; />
+        <cc:requires
+           rdf:resource="http://creativecommons.org/ns#Attribution"; />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks"; />
+        <cc:requires
+           rdf:resource="http://creativecommons.org/ns#ShareAlike"; />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="translate(0,-172)"
+     style="display:inline"
+     id="layer1">
+    <g
+       transform="translate(0.176777)"
+       id="g1149-5"
+       style="display:inline;enable-background:new">
+      <rect
+         ry="8"
+         rx="8"
+         style="display:inline;opacity:1;fill:url(#linearGradient1329);fill-opacity:1;stroke:none;stroke-width:31.99999428;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:4.00000007, 2.00000003;stroke-dashoffset:0;stroke-opacity:1;enable-background:new"
+         id="rect1000-3-4"
+         width="104"
+         height="76"
+         x="12"
+         y="212" />
+      <rect
+         y="186"
+         x="12"
+         height="68"
+         width="104"
+         id="rect1299"
+         style="display:inline;opacity:0.1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:31.99999809;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:4.00000012, 2.00000007;stroke-dashoffset:0;stroke-opacity:1;enable-background:new"
+         rx="8"
+         ry="8" />
+      <rect
+         ry="8"
+         rx="8"
+         style="display:inline;opacity:1;fill:#cdab8f;fill-opacity:1;stroke:none;stroke-width:31.99999809;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:4.00000012, 2.00000007;stroke-dashoffset:0;stroke-opacity:1;enable-background:new"
+         id="rect1000-3-9-7"
+         width="104"
+         height="68"
+         x="12"
+         y="184" />
+      <rect
+         style="opacity:1;vector-effect:none;fill:#cdab8f;fill-opacity:1;stroke:none;stroke-width:1.54560292;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal"
+         id="rect1076-65"
+         width="2"
+         height="60"
+         x="62"
+         y="192" />
+      <rect
+         style="display:inline;opacity:1;vector-effect:none;fill:#eadcd0;fill-opacity:1;stroke:none;stroke-width:1.54560292;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+         id="rect1076-6-69"
+         width="2"
+         height="60.000008"
+         x="64"
+         y="-252"
+         transform="scale(1,-1)" />
+      <g
+         transform="translate(0,17)"
+         id="g1135-3"
+         style="display:inline;enable-background:new">
+        <path
+           style="opacity:1;fill:url(#linearGradient1610);fill-opacity:1;stroke:none;stroke-width:0.49999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;paint-order:normal"
+           d="m 60,178 v 4 h 4 v -2 h 4 v -2 h -4 z m 4,4 v 2 h -4 v 4 h 4 v -2 h 4 v -4 z m 0,6 v 2 h -4 v 4 h 4 v -2 h 4 v -4 z m 0,6 v 2 h -4 v 4 h 4 v -2 h 4 v -2 -2 z m 0,6 v 2 h -4 v 4 h 4 v -2 h 4 v -4 z m 0,6 v 2 h -4 v 4 h 4 v -2 h 4 v -4 z m 0,6 v 2 h -4 v 4 h 4 v -2 h 4 v -2 -2 z m 0,6 v 2 h -4 v 4 h 4 v -2 h 4 v -4 z m 0,6 v 2 h -4 v 4 h 4 v -2 h 4 v -4 z m 0,6 v 2 h -4 v 4 h 4 v -2 h 4 v -2 -2 z"
+           id="rect5175-2-7" />
+        <path
+           style="opacity:0.4;fill:#241f31;fill-opacity:1;stroke:none;stroke-width:0.49999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;paint-order:normal"
+           d="m 64,179 v 1 h 4 v -1 z m -4,2 v 1 h 4 v -1 z m 4,4 v 1 h 4 v -1 z m -4,2 v 1 h 4 v -1 z m 4,4 v 1 h 4 v -1 z m -4,2 v 1 h 4 v -1 z m 4,4 v 1 h 4 v -1 z m -4,2 v 1 h 4 v -1 z m 4,4 v 1 h 4 v -1 z m -4,2 v 1 h 4 v -1 z m 4,4 v 1 h 4 v -1 z m -4,2 v 1 h 4 v -1 z m 4,4 v 1 h 4 v -1 z m -4,2 v 1 h 4 v -1 z m 4,4 v 1 h 4 v -1 z m -4,2 v 1 h 4 v -1 z m 4,4 v 1 h 4 v -1 z m -4,2 v 1 h 4 v -1 z m 4,4 v 1 h 4 v -1 z m -4,2 v 1 h 4 v -1 z"
+           id="path1183-4" />
+      </g>
+      <path
+         id="path1340-5-4"
+         d="m 60,186 c -2.216,0 -4,1.784 -4,4 v 10 c 0,2.216 1.784,4 4,4 v 8 c 0,1.108 0.892,2 2,2 h 4 c 1.108,0 2,-0.892 2,-2 v -8 c 2.216,0 4,-1.784 4,-4 v -10 c 0,-2.216 -1.784,-4 -4,-4 z m 2,22 h 4 v 4 h -4 z"
+         style="display:inline;opacity:0.1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;enable-background:new" />
+      <g
+         id="g1352-52"
+         transform="translate(0,-66)"
+         style="display:inline;enable-background:new">
+        <path
+           style="opacity:1;fill:url(#linearGradient1612);fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           d="m 62,258 c -1.108,0 -2,0.892 -2,2 v 16 c 0,1.108 0.892,2 2,2 h 4 c 1.108,0 2,-0.892 2,-2 v -16 c 0,-1.108 -0.892,-2 -2,-2 z m 0,14 h 4 v 4 h -4 z"
+           id="path1340-5" />
+        <rect
+           ry="4"
+           rx="4"
+           y="250"
+           x="56"
+           height="18"
+           width="16"
+           id="rect1051-6-7-4"
+           style="display:inline;opacity:1;vector-effect:none;fill:#3d3846;fill-opacity:1;stroke:none;stroke-width:7.99999857;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;enable-background:new" />
+        <rect
+           ry="4"
+           rx="4"
+           y="248"
+           x="56"
+           height="18"
+           width="16"
+           id="rect1051-6-74"
+           style="display:inline;opacity:1;vector-effect:none;fill:#5e5c64;fill-opacity:1;stroke:none;stroke-width:7.99999857;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;enable-background:new" />
+        <path
+           id="rect1335-4"
+           d="m 62,254 c -1.108,0 -2,0.892 -2,2 v 18 c 0,1.108 0.892,2 2,2 h 4 c 1.108,0 2,-0.892 2,-2 v -18 c 0,-1.108 -0.892,-2 -2,-2 z m 0,16 h 4 v 4 h -4 z"
+           style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <rect
+           transform="scale(1,-1)"
+           ry="2"
+           rx="2"
+           y="-260"
+           x="62"
+           height="10"
+           width="3.9999993"
+           id="rect5037-3-3"
+           style="display:inline;opacity:1;fill:#68676b;fill-opacity:1;stroke:none;stroke-width:0.49999991;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;paint-order:normal;enable-background:new" />
+        <rect
+           style="display:inline;opacity:1;fill:#949390;fill-opacity:1;stroke:none;stroke-width:0.49999991;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;paint-order:normal;enable-background:new"
+           id="rect1089-0"
+           width="3.9999993"
+           height="8"
+           x="62"
+           y="-258"
+           rx="2"
+           ry="2"
+           transform="scale(1,-1)" />
+      </g>
+      <path
+         transform="translate(-0.1767767,172)"
+         id="rect1236"
+         d="m 16.177734,13.072266 c -0.754705,0.43517 -1.427824,0.989659 -2,1.638672 v 62.578124 c 0.572176,0.649013 1.245295,1.203502 2,1.638672 z"
+         style="opacity:0.1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal" />
+      <path
+         id="rect1236-3"
+         transform="translate(-0.1767767,172)"
+         d="m 112.17773,13.072266 v 65.855468 c 0.75493,-0.435507 1.42781,-0.991137 2,-1.640625 V 14.712891 c -0.57219,-0.649488 -1.24507,-1.205118 -2,-1.640625 z"
+         style="display:inline;opacity:0.1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+    </g>
+  </g>
+</svg>
diff -Nru file-roller-3.38.0/help/C/index.page file-roller-3.38.1/help/C/index.page
--- file-roller-3.38.0/help/C/index.page	2020-09-12 21:05:43.792812000 +0200
+++ file-roller-3.38.1/help/C/index.page	2021-04-11 17:45:18.127801000 +0200
@@ -4,6 +4,7 @@
       id="index">
 
   <info>
+    <title type="link" role="trail">Archive Manager</title>
     <title type="link">Archive Manager Help</title>
     <title type="text">Archive Manager Help</title>
     <revision pkgversion="3.8" date="2013-02-24" status="review"/>
@@ -26,7 +27,8 @@
   </info>
   
   <title>
-    <media type="image" mime="image/png" its:translate="no" height="32" src="figures/file-roller-icon.png" />
+    <media type="image" its:translate="no" width="48px" height="48px"
+    src="figures/org.gnome.ArchiveManager.svg" />
     Archive Manager
   </title>
   
diff -Nru file-roller-3.38.0/help/meson.build file-roller-3.38.1/help/meson.build
--- file-roller-3.38.0/help/meson.build	2020-09-12 21:05:43.799478500 +0200
+++ file-roller-3.38.1/help/meson.build	2021-04-11 17:45:18.174467600 +0200
@@ -17,6 +17,6 @@
     'troubleshooting-password.page'
   ],
   media : [
-    'figures/file-roller-icon.png'
+    'figures/org.gnome.ArchiveManager.svg'
   ]
 )
diff -Nru file-roller-3.38.0/meson.build file-roller-3.38.1/meson.build
--- file-roller-3.38.0/meson.build	2020-09-12 21:05:43.802811600 +0200
+++ file-roller-3.38.1/meson.build	2021-04-11 17:45:18.231134200 +0200
@@ -1,6 +1,6 @@
 project('file-roller', 'c',
   license : 'GPL2+',
-  version : '3.38.0',
+  version : '3.38.1',
   meson_version : '>=0.50'
 )
 
diff -Nru file-roller-3.38.0/src/fr-application.c file-roller-3.38.1/src/fr-application.c
--- file-roller-3.38.0/src/fr-application.c	2020-09-12 21:05:43.826144000 +0200
+++ file-roller-3.38.1/src/fr-application.c	2021-04-11 17:45:18.394467400 +0200
@@ -454,7 +454,7 @@
 	G_APPLICATION_CLASS (fr_application_parent_class)->startup (application);
 
 	g_set_application_name (_("Archive Manager"));
-	gtk_window_set_default_icon_name ("file-roller");
+	gtk_window_set_default_icon_name ("org.gnome.ArchiveManager");
 
 #ifdef ENABLE_NOTIFICATION
 	if (! notify_init (g_get_application_name ()))
diff -Nru file-roller-3.38.0/src/fr-archive-libarchive.c file-roller-3.38.1/src/fr-archive-libarchive.c
--- file-roller-3.38.0/src/fr-archive-libarchive.c	2020-09-12 21:05:43.826144000 +0200
+++ file-roller-3.38.1/src/fr-archive-libarchive.c	2021-04-11 17:45:18.414467300 +0200
@@ -498,7 +498,6 @@
 
 		archive_read_data_skip (a);
 	}
-	archive_read_free (a);
 
 	if ((load_data->error == NULL) && (r != ARCHIVE_EOF) && (archive_error_string (a) != NULL))
 		load_data->error = _g_error_new_from_archive_error (archive_error_string (a));
@@ -507,6 +506,7 @@
 	if (load_data->error != NULL)
 		g_simple_async_result_set_from_error (result, load_data->error);
 
+	archive_read_free (a);
 	load_data_free (load_data);
 }
 
@@ -697,115 +697,12 @@
 	return success;
 }
 
-
-static gboolean
-_symlink_is_external_to_destination (GFile      *file,
-				     const char *symlink,
-				     GFile      *destination,
-				     GHashTable *external_links);
-
-
-static gboolean
-_g_file_is_external_link (GFile      *file,
-			  GFile      *destination,
-			  GHashTable *external_links)
-{
-	GFileInfo *info;
-	gboolean   external;
-
-	if (g_hash_table_lookup (external_links, file) != NULL)
-		return TRUE;
-
-	info = g_file_query_info (file,
-				  G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK "," G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET,
-				  G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS,
-				  NULL,
-				  NULL);
-
-	if (info == NULL)
-		return FALSE;
-
-	external = FALSE;
-
-	if (g_file_info_get_is_symlink (info)) {
-		if (_symlink_is_external_to_destination (file,
-							 g_file_info_get_symlink_target (info),
-							 destination,
-							 external_links))
-		{
-			g_hash_table_insert (external_links, g_object_ref (file), GINT_TO_POINTER (1));
-			external = TRUE;
-		}
-	}
-
-	g_object_unref (info);
-
-	return external;
-}
-
-
-static gboolean
-_symlink_is_external_to_destination (GFile      *file,
-				     const char *symlink,
-				     GFile      *destination,
-				     GHashTable *external_links)
-{
-	gboolean  external = FALSE;
-	GFile    *parent;
-	char    **components;
-	int       i;
-
-	if ((file == NULL) || (symlink == NULL))
-		return FALSE;
-
-	if (symlink[0] == '/')
-		return TRUE;
-
-	parent = g_file_get_parent (file);
-	components = g_strsplit (symlink, "/", -1);
-	for (i = 0; components[i] != NULL; i++) {
-		char  *name = components[i];
-		GFile *tmp;
-
-		if ((name[0] == 0) || ((name[0] == '.') && (name[1] == 0)))
-			continue;
-
-		if ((name[0] == '.') && (name[1] == '.') && (name[2] == 0)) {
-			if (g_file_equal (parent, destination)) {
-				external = TRUE;
-				break;
-			}
-			else {
-				tmp = g_file_get_parent (parent);
-				g_object_unref (parent);
-				parent = tmp;
-			}
-		}
-		else {
-			tmp = g_file_get_child (parent, components[i]);
-			g_object_unref (parent);
-			parent = tmp;
-		}
-
-		if (_g_file_is_external_link (parent, destination, external_links)) {
-			external = TRUE;
-			break;
-		}
-	}
-
-	g_strfreev (components);
-	g_object_unref (parent);
-
-	return external;
-}
-
-
 static gboolean
-_g_path_is_external_to_destination (const char *relative_path,
-				    GFile      *destination,
-				    GHashTable *external_links)
+_g_file_contains_symlinks_in_path (const char *relative_path,
+				   GFile      *destination,
+				   GHashTable *symlinks)
 {
-	gboolean  external = FALSE;
+	gboolean  contains_symlinks = FALSE;
 	GFile    *parent;
 	char    **components;
 	int       i;
@@ -828,8 +725,8 @@
 		g_object_unref (parent);
 		parent = tmp;
 
-		if (_g_file_is_external_link (parent, destination, external_links)) {
-			external = TRUE;
+		if (g_hash_table_contains (symlinks, parent)) {
+			contains_symlinks = TRUE;
 			break;
 		}
 	}
@@ -837,7 +734,7 @@
 	g_strfreev (components);
 	g_object_unref (parent);
 
-	return external;
+	return contains_symlinks;
 }
 
 
@@ -851,7 +748,7 @@
 	GHashTable           *checked_folders;
 	GHashTable           *created_files;
 	GHashTable           *folders_created_during_extraction;
-	GHashTable           *external_links;
+	GHashTable           *symlinks;
 	struct archive       *a;
 	struct archive_entry *entry;
 	int                   r;
@@ -868,7 +765,7 @@
 	checked_folders = g_hash_table_new_full (g_file_hash, (GEqualFunc) g_file_equal, g_object_unref, NULL);
 	created_files = g_hash_table_new_full (g_file_hash, (GEqualFunc) g_file_equal, g_object_unref, g_object_unref);
 	folders_created_during_extraction = g_hash_table_new_full (g_file_hash, (GEqualFunc) g_file_equal, g_object_unref, NULL);
-	external_links = g_hash_table_new_full (g_file_hash, (GEqualFunc) g_file_equal, g_object_unref, NULL);
+	symlinks = g_hash_table_new_full (g_file_hash, (GEqualFunc) g_file_equal, g_object_unref, NULL);
 	fr_archive_progress_set_total_files (load_data->archive, extract_data->n_files_to_extract);
 
 	while ((r = archive_read_next_header (a, &entry)) == ARCHIVE_OK) {
@@ -902,7 +799,14 @@
 			continue;
 		}
 
-		if (_g_path_is_external_to_destination (relative_path, extract_data->destination, external_links)) {
+		/* Symlinks in parents are dangerous as it can easily happen
+		 * that files are written outside of the destination. The tar
+		 * cmd fails to extract such archives with ENOTDIR. Let's skip
+		 * those files here for sure. This is most probably malicious,
+		 * or corrupted archive.
+		 */
+		if (_g_file_contains_symlinks_in_path (relative_path, extract_data->destination, symlinks)) {
+			g_warning ("Skipping '%s' file as it has symlink in parents.", relative_path);
 			fr_archive_progress_inc_completed_files (load_data->archive, 1);
 			fr_archive_progress_inc_completed_bytes (load_data->archive, archive_entry_size_is_set (entry) ? archive_entry_size (entry) : 0);
 			archive_read_data_skip (a);
@@ -1123,8 +1027,8 @@
 						load_data->error = g_error_copy (local_error);
 					g_clear_error (&local_error);
 				}
-				if ((load_data->error == NULL) && _symlink_is_external_to_destination (file, archive_entry_symlink (entry), extract_data->destination, external_links))
-					g_hash_table_insert (external_links, g_object_ref (file), GINT_TO_POINTER (1));
+				if (load_data->error == NULL)
+					g_hash_table_add (symlinks, g_object_ref (file));
 				archive_read_data_skip (a);
 				break;
 
@@ -1159,7 +1063,7 @@
 	g_hash_table_unref (folders_created_during_extraction);
 	g_hash_table_unref (created_files);
 	g_hash_table_unref (checked_folders);
-	g_hash_table_unref (external_links);
+	g_hash_table_unref (symlinks);
 	archive_read_free (a);
 	extract_data_free (extract_data);
 }
diff -Nru file-roller-3.38.0/src/ui/new-archive-dialog.ui file-roller-3.38.1/src/ui/new-archive-dialog.ui
--- file-roller-3.38.0/src/ui/new-archive-dialog.ui	2020-09-12 21:05:43.836143500 +0200
+++ file-roller-3.38.1/src/ui/new-archive-dialog.ui	2021-04-11 17:45:18.431134000 +0200
@@ -174,6 +174,7 @@
                         <property name="can_focus">True</property>
                         <property name="visibility">False</property>
                         <property name="invisible_char">●</property>
+                        <property name="activates_default">True</property>
                       </object>
                       <packing>
                         <property name="expand">False</property>

Reply to: