Package: apt-src
Version: 0.25.1-0.1

--- Please enter the report below this line. ---
Hi,

This is because when error() is called it doesn't pop the @unwind array prior to calling the unwind function, so if the unwind function itself calls error, it goes into a loop.

Trivial patch below.

Regards, David.
www.encoresoup.com

======================================
diff --git a/AptSrc.pm b/AptSrc.pm
index f2a01ad..8df1fa1 100644
--- a/AptSrc.pm
+++ b/AptSrc.pm
@@ -638,7 +638,7 @@ sub error {
       my $class=shift;
       print STDERR "E: ".shift()."\n";
       # Error unwind.
-       foreach (reverse @unwind) {
+       while ($_ = pop @unwind) {
               $_->();
       }
       exit(1);
======================================

--- System information. ---
Architecture: i386
Kernel: Linux 2.6.18-4-vserver-686

Debian Release: 4.0
500 testing ftp.uk.debian.org

--- Package information. ---
Depends (Version) | Installed
=================================-+-==============
libapt-pkg-perl (>= 0.1.6) | 0.1.21
dpkg-dev | 1.13.25
apt | 0.7.3
perl (>= 5.6.0-16) | 5.8.8-7



--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to