From d7cfbea3924d241ce232a9cfc3520fdb8b593c32 Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Sat, 13 Apr 2013 10:39:20 +0000 Subject: [PATCH] Avoid endless recursion in commandlist if the $hash contains a pointer to itself. git-svn-id: https://svn.fhem.de/fhem/trunk@3070 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/fhem.pl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fhem/fhem.pl b/fhem/fhem.pl index 229add138..6baf90709 100755 --- a/fhem/fhem.pl +++ b/fhem/fhem.pl @@ -1510,10 +1510,12 @@ PrintHash($$) { my ($h, $lev) = @_; my $si = AttrVal("global", "showInternalValues", 0); + return "" if($h->{".visited"}); + $h->{".visited"} = 1; my ($str,$sstr) = ("",""); foreach my $c (sort keys %{$h}) { - next if(!$si && $c =~ m/^\./); + next if(!$si && $c =~ m/^\./ || $c eq ".visited"); if(ref($h->{$c})) { if(ref($h->{$c}) eq "HASH") { if(defined($h->{$c}{TIME}) && defined($h->{$c}{VAL})) { @@ -1538,6 +1540,7 @@ PrintHash($$) $str .= sprintf("%*s %-10s %s\n", $lev," ",$c, defined($v) ? $v : ""); } } + delete $h->{".visited"}; return $str . $sstr; }