]> wagnertech.de Git - mfinanz.git/blobdiff - bin/mozilla/common.pl
Endlose Rekursionen via call_sub vermeiden.
[mfinanz.git] / bin / mozilla / common.pl
index defa5f1b024c310eb8fb3d76bed00843ad0baa57..c8ab34033caea6488b592ee774dab86a2ea33476 100644 (file)
@@ -9,6 +9,7 @@
 #
 ######################################################################
 
+use Carp;
 use SL::Common;
 use SL::DBUtils;
 use SL::Form;
@@ -508,6 +509,8 @@ sub show_history {
 
 # -------------------------------------------------------------------------
 
+my %_called_subs = ();
+
 sub call_sub {
   $main::lxdebug->enter_sub();
 
@@ -526,6 +529,9 @@ sub call_sub {
     $form->error(sprintf($locale->text("Attempt to call an undefined sub named '%s'"), $name));
   }
 
+  $_called_subs{$name}++;
+  confess "RECURSION DETECTION: call_sub($name) called " . $_called_subs{$name} . " time(s)" if $_called_subs{$name} > 10;
+
   {
     no strict "refs";
     &{ $name }(@_);