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 debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to