diff options
| author | 2017-10-08 17:26:43 +0200 | |
|---|---|---|
| committer | 2017-10-08 17:26:43 +0200 | |
| commit | 1eb19409b5435546774425c00523b9f88d4fccf9 (patch) | |
| tree | 9c30d510a3604826ebea1492276278ae905e6979 | |
| parent | 05228ed92fc26b17861c1d3b7939d6faaf5ec104 (diff) | |
CURLOPT_FOLLOWLOCATION open_basedir bug (#1657)
CURLOPT_FOLLOWLOCATION cannot be activated when an open_basedir is set
https://github.com/FreshRSS/FreshRSS/issues/1655#issuecomment-334999448
https://stackoverflow.com/questions/6918623/curlopt-followlocation-cannot-be-activated
| -rw-r--r-- | CHANGELOG.md | 2 | ||||
| -rw-r--r-- | app/Models/Feed.php | 27 | ||||
| -rw-r--r-- | lib/favicons.php | 4 |
3 files changed, 19 insertions, 14 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 09a644478..4b24cd116 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ * SimplePie * Remove "SimplePie" name from HTTP User-Agent string [#1656](https://github.com/FreshRSS/FreshRSS/pull/1656) +* Bug fixing + * Work-around for `CURLOPT_FOLLOWLOCATION` `open_basedir` bug in favicons and PubSubHubbub [#1655](https://github.com/FreshRSS/FreshRSS/issues/1655) * Misc. * Travis translation validation tool [#1653](https://github.com/FreshRSS/FreshRSS/pull/1653) diff --git a/app/Models/Feed.php b/app/Models/Feed.php index 44d518a47..85273d3f7 100644 --- a/app/Models/Feed.php +++ b/app/Models/Feed.php @@ -481,18 +481,21 @@ class FreshRSS_Feed extends Minz_Model { } $ch = curl_init(); curl_setopt_array($ch, array( - CURLOPT_URL => $hubJson['hub'], - CURLOPT_FOLLOWLOCATION => true, - CURLOPT_RETURNTRANSFER => true, - CURLOPT_USERAGENT => FRESHRSS_USERAGENT, - CURLOPT_POSTFIELDS => http_build_query(array( - 'hub.verify' => 'sync', - 'hub.mode' => $state ? 'subscribe' : 'unsubscribe', - 'hub.topic' => $url, - 'hub.callback' => $callbackUrl, - )) - ) - ); + CURLOPT_URL => $hubJson['hub'], + CURLOPT_RETURNTRANSFER => true, + CURLOPT_POSTFIELDS => http_build_query(array( + 'hub.verify' => 'sync', + 'hub.mode' => $state ? 'subscribe' : 'unsubscribe', + 'hub.topic' => $url, + 'hub.callback' => $callbackUrl, + )), + CURLOPT_USERAGENT => FRESHRSS_USERAGENT, + CURLOPT_MAXREDIRS => 10, + )); + curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); //Keep option separated for open_basedir bug + if (defined('CURLOPT_ENCODING')) { + curl_setopt($ch, CURLOPT_ENCODING, ''); //Enable all encodings + } $response = curl_exec($ch); $info = curl_getinfo($ch); diff --git a/lib/favicons.php b/lib/favicons.php index 80246ee74..2d6f7aab7 100644 --- a/lib/favicons.php +++ b/lib/favicons.php @@ -31,12 +31,12 @@ function downloadHttp(&$url, $curlOptions = array()) { } $ch = curl_init($url); curl_setopt_array($ch, array( - CURLOPT_FOLLOWLOCATION => true, - CURLOPT_MAXREDIRS => 10, CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 15, CURLOPT_USERAGENT => FRESHRSS_USERAGENT, + CURLOPT_MAXREDIRS => 10, )); + curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); //Keep option separated for open_basedir bug if (defined('CURLOPT_ENCODING')) { curl_setopt($ch, CURLOPT_ENCODING, ''); //Enable all encodings } |
