summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhil Davis <phil.davis@inf.org>2014-12-30 18:40:52 +0545
committerPhil Davis <phil.davis@inf.org>2014-12-30 18:40:52 +0545
commit6617b9bf0d9835a68886fd7ea0f9cae4b90974aa (patch)
treed741508e7110595884d3105dde0bd3d8900574d6
parent565dcf3c3c6299695058d616cdad95a5d300288e (diff)
downloadpfsense-6617b9bf0d9835a68886fd7ea0f9cae4b90974aa.zip
pfsense-6617b9bf0d9835a68886fd7ea0f9cae4b90974aa.tar.gz
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.
-rw-r--r--etc/inc/ipsec.inc7
1 files changed, 7 insertions, 0 deletions
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, "</message>")) {
$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);
OpenPOWER on IntegriCloud