From b04bd2f8e84c3c356e56b84186489a7c539972a1 Mon Sep 17 00:00:00 2001 From: rudolfkoenig Date: Sat, 16 Feb 2019 10:22:29 +0000 Subject: [PATCH] 10_MQTT2_DEVICE.pm: check regexp syntax for readingsList (Forum #90145) git-svn-id: https://svn.fhem.de/fhem/trunk@18610 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/10_MQTT2_DEVICE.pm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/fhem/FHEM/10_MQTT2_DEVICE.pm b/fhem/FHEM/10_MQTT2_DEVICE.pm index c03cce604..52abd181d 100644 --- a/fhem/FHEM/10_MQTT2_DEVICE.pm +++ b/fhem/FHEM/10_MQTT2_DEVICE.pm @@ -398,7 +398,10 @@ MQTT2_DEVICE_Attr($$) } } - MQTT2_DEVICE_addReading($dev, $param) if($atype eq "reading"); + if($atype eq "reading") { + my $ret = MQTT2_DEVICE_addReading($dev, $param); + return $ret if($ret); + } } if($attrName eq "bridgeRegexp" && $type eq "set") { @@ -461,9 +464,12 @@ MQTT2_DEVICE_addReading($$) MQTT2_DEVICE_delReading($name); foreach my $line (split("\n", $param)) { my ($re,$code) = split(" ", $line,2); + eval { "Hallo" =~ m/^$re$/ }; + return "Bad regexp: $@" if($@); $modules{MQTT2_DEVICE}{defptr}{re}{$re}{"$name,$code"} = $code if($re && $code); } + return undef; }