The problem is that DIR is a global but is used in a recursive function.
Not good.
patch:
<7>:diff -u durep durep.new
--- durep 2007-09-08 11:44:05.000000000 -0500
+++ durep.new 2008-12-15 10:04:14.907825184 -0600
@@ -175,6 +175,7 @@
my $coalesced_size = 0;
my $node = {};
my $temp;
+ my $dirhandle;
$node->{ID} = $next_id++;
if(defined $parent) {
@@ -196,9 +197,9 @@
$node->{TYPE} &= $TYPE_COLLAPSED unless $store;
- opendir(DIR, $dir) or warn "Unable to open dir '$dir': $!\n" and
return $node;
+ opendir($dirhandle, $dir) or warn "Unable to open dir '$dir': $!\n"
and return $node;
- foreach(readdir(DIR)) {
+ foreach(readdir($dirhandle)) {
@stats = lstat "$dir/$_" or warn "Unable to lstat '$dir/$_': $!\n"
and next;
$node->{MTIME} = $stats[9] if($_ eq ".");
@@ -247,7 +248,7 @@
$file_count++;
$node->{FCOUNT}++;
}
- closedir(DIR);
+ closedir($dirhandle);
if($coalesced_count) {
if($store) {
--
-Rupa
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]