diff --git a/modules/image/image.module b/modules/image/image.module index 07f4892..2c07fcc 100644 --- a/modules/image/image.module +++ b/modules/image/image.module @@ -786,7 +786,19 @@ function image_style_deliver($style, $scheme) { file_download($scheme, file_uri_target($derivative_uri)); } else { - $headers = module_invoke_all('file_download', $image_uri); + $headers = array(); + foreach (module_implements('file_download') as $module) { + $function = $module . '_file_download'; + $result = $function($image_uri); + if ($result == -1) { + // Throw away the headers received so far. + $headers = array(); + break; + } + if (isset($result) && is_array($result)) { + $headers = array_merge($headers, $result); + } + } if (in_array(-1, $headers) || empty($headers)) { return drupal_access_denied(); }