From c448440ce844666a09fb8c9e287bfe4d293b8fad Mon Sep 17 00:00:00 2001
From: webchick <webchick@24967.no-reply.drupal.org>
Date: Sun, 3 Jul 2011 11:04:28 -0700
Subject: [PATCH] Issue #1169564 by FreekyMage, jhodgdon: Fixed
 hook_file_download() - sample function body not updated for d7/8.

---
 modules/system/system.api.php | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/modules/system/system.api.php b/modules/system/system.api.php
index 4005389004dd..8e2e8957ed0b 100644
--- a/modules/system/system.api.php
+++ b/modules/system/system.api.php
@@ -2687,22 +2687,21 @@ function hook_file_delete($file) {
  *   NULL.
  *
  * @see file_download()
- * @see upload_file_download()
  */
 function hook_file_download($uri) {
   // Check if the file is controlled by the current module.
   if (!file_prepare_directory($uri)) {
     $uri = FALSE;
   }
-  $result = db_query("SELECT f.* FROM {file_managed} f INNER JOIN {upload} u ON f.fid = u.fid WHERE uri = :uri", array('uri' => $uri));
-  foreach ($result as $file) {
-    if (!user_access('view uploaded files')) {
+  if (strpos(file_uri_target($uri), variable_get('user_picture_path', 'pictures') . '/picture-') === 0) {
+    if (!user_access('access user profiles')) {
+      // Access to the file is denied.
       return -1;
     }
-    return array(
-      'Content-Type' => $file->filemime,
-      'Content-Length' => $file->filesize,
-    );
+    else {
+      $info = image_get_info($uri);
+      return array('Content-Type' => $info['mime_type']);
+    }
   }
 }
 
-- 
GitLab