diff options
author | Nils Adermann <naderman@naderman.de> | 2014-10-27 18:58:11 -0700 |
---|---|---|
committer | Nils Adermann <naderman@naderman.de> | 2014-10-27 18:58:11 -0700 |
commit | efe3aaaf0b9b2f60da89df0e285dace91f24cea1 (patch) | |
tree | 63c94db901481215715640f72cb1e73f2037b237 | |
parent | df1212ce27bc4864abc84ef92a9998e9c58cd0e2 (diff) | |
parent | 4e4c3de10316fa5928b309972b49416fba77f5a9 (diff) | |
download | forums-efe3aaaf0b9b2f60da89df0e285dace91f24cea1.tar forums-efe3aaaf0b9b2f60da89df0e285dace91f24cea1.tar.gz forums-efe3aaaf0b9b2f60da89df0e285dace91f24cea1.tar.bz2 forums-efe3aaaf0b9b2f60da89df0e285dace91f24cea1.tar.xz forums-efe3aaaf0b9b2f60da89df0e285dace91f24cea1.zip |
Merge pull request #3085 from naderman/ticket/13227
[ticket/13227] Properly handle curlwrapper headers in remote avatars
-rw-r--r-- | phpBB/phpbb/avatar/driver/remote.php | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/phpBB/phpbb/avatar/driver/remote.php b/phpBB/phpbb/avatar/driver/remote.php index 1bd7f6c927..4b0ee3f06f 100644 --- a/phpBB/phpbb/avatar/driver/remote.php +++ b/phpBB/phpbb/avatar/driver/remote.php @@ -130,8 +130,24 @@ class remote extends \phpbb\avatar\driver\driver { // Timeout after 1 second stream_set_timeout($file_stream, 1); + // read some data to ensure headers are present + fread($file_stream, 1024); $meta = stream_get_meta_data($file_stream); - foreach ($meta['wrapper_data'] as $header) + + if (isset($meta['wrapper_data']['headers']) && is_array($meta['wrapper_data']['headers'])) + { + $headers = $meta['wrapper_data']['headers']; + } + else if (isset($meta['wrapper_data']) && is_array($meta['wrapper_data'])) + { + $headers = $meta['wrapper_data']; + } + else + { + $headers = array(); + } + + foreach ($headers as $header) { $header = preg_split('/ /', $header, 2); if (strtr(strtolower(trim($header[0], ':')), '_', '-') === 'content-type') |