diff --git a/phpBB/download/file.php b/phpBB/download/file.php index 1616448c0b..830967c213 100644 --- a/phpBB/download/file.php +++ b/phpBB/download/file.php @@ -456,6 +456,10 @@ function send_file_to_browser($attachment, $upload_dir, $category) { header("Content-Length: $size"); } + + // Close the db connection before sending the file + $db->sql_close(); + if (!set_modified_headers($attachment['filetime'], $user->browser)) { // Try to deliver in chunks diff --git a/phpBB/includes/db/dbal.php b/phpBB/includes/db/dbal.php index b88873df46..af5dfa059b 100644 --- a/phpBB/includes/db/dbal.php +++ b/phpBB/includes/db/dbal.php @@ -147,7 +147,13 @@ class dbal $this->sql_freeresult($query_id); } - return $this->_sql_close(); + // Connection closed correctly. Set db_connect_id to false to prevent errors + if (($result = $this->_sql_close())) + { + $this->db_connect_id = false; + } + + return $result; } /**