Comment 4 for bug 1522563

Revision history for this message
Ryo Onodera (ryoqun) wrote :

I've encountered with similar problem for the package libfuse2.

After some investigation, it seems that this is caused by an infinite loop inside resolve_path.

After this tiny hack, it finished to work:

```
ryoqun@miyako:~$ diff -u /usr/bin/debsums{?*,}
--- /usr/bin/debsums.backup 2016-10-26 13:12:30.157544031 +0900
+++ /usr/bin/debsums 2016-10-26 13:33:01.565480144 +0900
@@ -427,7 +427,9 @@
     my $path = shift;
     my @tokens = split(/\//, $path);
     my @parts = ();
- while (@tokens) {
+ my $loop_count = 0;
+ while (@tokens && $loop_count < 2000) {
+ $loop_count++;
         my $token = shift @tokens;
         next if $token eq '.' || $token eq '';
         if ($token eq '..') {
@@ -443,6 +445,9 @@
             push @parts, $token;
         }
     }
+ if ($loop_count >= 2000) {
+ warn "maybe infinite loop: $path ";
+ }
     return join('/', @parts);
 }

```