From 6617b9bf0d9835a68886fd7ea0f9cae4b90974aa Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Tue, 30 Dec 2014 18:40:52 +0545 Subject: ipsec_smp_dump_status get out of loop if error when reading response from socket. Otherwise it would be in a loop and end up like: https://forum.pfsense.org/index.php?topic=86039.msg471848#msg471848 PHP Fatal error: Maximum execution time of 900 seconds exceeded in /etc/inc/ipsec.inc on line 383 This code runs on my system, but I do not know how to induce the possible loop condition to actually test if it would really break out and return nicely. --- etc/inc/ipsec.inc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/etc/inc/ipsec.inc b/etc/inc/ipsec.inc index 349ce43..d6e2669 100644 --- a/etc/inc/ipsec.inc +++ b/etc/inc/ipsec.inc @@ -382,10 +382,17 @@ function ipsec_smp_dump_status() { $response = ""; while (!strstr($sread, "")) { $sread = fgets($fd); + if ($sread === false) + break; $response .= $sread; } fclose($fd); + if ($sread === false) { + log_error("Error during reading of status from IPsec"); + return; + } + @file_put_contents("{$g['tmp_path']}/smp_status.xml", $response); unset($response, $sread); -- cgit v1.1