File 6.diff of Package perl-File-Unpack

diff --git a/Unpack.pm b/Unpack.pm
index d5354ac..69ace96 100644
--- a/Unpack.pm
+++ b/Unpack.pm
@@ -2504,7 +2504,7 @@ sub mime
     }
 
   ## try to get at the second level mime type, for some well known linear compressors.
-  while (length $uncomp_buf && $r[0] =~ m{^application/(x-)?([+\w]+)$})
+  while (length $uncomp_buf && $r[0] =~ m{^application/(x-)?([+\w]+)$} && !$in{recursion})
     {
       my $compname = $2;
       my $next_uncomp_buf = '';
@@ -2518,6 +2518,8 @@ sub mime
       #########
 
       my $m2 = $self->mime(buf => $uncomp_buf, file => $in{file}, uncomp => \$next_uncomp_buf, recursion => 1);
+      # protecting against http://www.maximumcompression.com/selfgz.gz
+      last if length($uncomp_buf) == length($next_uncomp_buf);
       my ($a,$xminus,$b) = ($m2->[0] =~ m{^(.*)/(x-)?(.*)$});
       if ($a eq 'application')
         {