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); }
```
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:
``` debsums{ ?*,} debsums. backup 2016-10-26 13:12:30.157544031 +0900
ryoqun@miyako:~$ diff -u /usr/bin/
--- /usr/bin/
+++ /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);
}
```