summaryrefslogtreecommitdiff
path: root/fml
diff options
context:
space:
mode:
authorfukachan <fukachan>2001-10-13 13:11:34 +0000
committerfukachan <fukachan>2001-10-13 13:11:34 +0000
commit576289aae815fa4dab2e62d9ecdf303455f476f5 (patch)
tree572f5efb58668d5342eaa82c02872e8923acc541 /fml
parent8a036f9183a2dd13f5734b535ff47d212cebf4a5 (diff)
downloadfml8-576289aae815fa4dab2e62d9ecdf303455f476f5.tar.gz
fml8-576289aae815fa4dab2e62d9ecdf303455f476f5.tar.bz2
fml8-576289aae815fa4dab2e62d9ecdf303455f476f5.zip
avoid infinite loop
Diffstat (limited to 'fml')
-rw-r--r--fml/lib/FML/Config.pm10
1 files changed, 8 insertions, 2 deletions
diff --git a/fml/lib/FML/Config.pm b/fml/lib/FML/Config.pm
index 5554042f..86b763c5 100644
--- a/fml/lib/FML/Config.pm
+++ b/fml/lib/FML/Config.pm
@@ -1,7 +1,7 @@
#-*- perl -*-
# Copyright (C) 2000-2001 Ken'ichi Fukamachi
#
-# $FML: Config.pm,v 1.43 2001/10/12 00:14:19 fukachan Exp $
+# $FML: Config.pm,v 1.44 2001/10/13 03:00:12 fukachan Exp $
#
package FML::Config;
@@ -412,7 +412,6 @@ sub write
else {
use Carp;
carp("cannot open > $file");
- Log("cannot open > $file");
}
}
@@ -504,8 +503,15 @@ expand $varname to $config->{ varname } in C<$rbuf>.
sub expand_variable_in_buffer
{
my ($config, $rbuf, $args) = @_;
+ my $loop_max = 16;
+ my $loop = 0;
+ EXPAND:
while ($$rbuf =~ /\$([\w\d\_]+)/) {
+ # in some case, we cannot expand ;)
+ # for example, $FML which is not defined in config.cf.
+ last EXPAND if $loop++ > $loop_max;
+
my $varname = $1;
if (defined $config->{ $varname }) {
my $x = $config->{ $varname };