From 58bcd50f7f8c187f8c0bd4a1d52aecafd76979fc Mon Sep 17 00:00:00 2001
From: Eugen Rochko <eugen@zeonfederated.com>
Date: Thu, 11 May 2017 23:14:00 +0200
Subject: [PATCH] Fix #1426 - Trim long usernames in public follower/following
 lists (#2993)

Fix #2221 - Catch OpenSSL exceptions when loading remote avatars/headers/attachments
Don't strip "rel" attribute from <a> tags when sanitizing (microformats)
---
 app/javascript/styles/accounts.scss   | 2 ++
 app/lib/sanitize_config.rb            | 2 +-
 app/models/concerns/account_avatar.rb | 2 +-
 app/models/concerns/account_header.rb | 2 +-
 app/services/process_feed_service.rb  | 2 +-
 5 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/app/javascript/styles/accounts.scss b/app/javascript/styles/accounts.scss
index b2b807a821..eb5ddc7423 100644
--- a/app/javascript/styles/accounts.scss
+++ b/app/javascript/styles/accounts.scss
@@ -302,6 +302,8 @@
         display: block;
         color: $ui-base-color;
         text-decoration: none;
+        text-overflow: ellipsis;
+        overflow: hidden;
 
         &:hover {
           .display_name {
diff --git a/app/lib/sanitize_config.rb b/app/lib/sanitize_config.rb
index 90098969fa..22b46a3d30 100644
--- a/app/lib/sanitize_config.rb
+++ b/app/lib/sanitize_config.rb
@@ -8,7 +8,7 @@ class Sanitize
       elements: %w(p br span a),
 
       attributes: {
-        'a'    => %w(href),
+        'a'    => %w(href rel),
         'span' => %w(class),
       },
 
diff --git a/app/models/concerns/account_avatar.rb b/app/models/concerns/account_avatar.rb
index 38e32864af..8b9b726591 100644
--- a/app/models/concerns/account_avatar.rb
+++ b/app/models/concerns/account_avatar.rb
@@ -34,7 +34,7 @@ module AccountAvatar
 
       self.avatar              = URI.parse(parsed_url.to_s)
       self[:avatar_remote_url] = url
-    rescue OpenURI::HTTPError => e
+    rescue OpenURI::HTTPError, OpenSSL::SSL::SSLError, Paperclip::Errors::NotIdentifiedByImageMagickError => e
       Rails.logger.debug "Error fetching remote avatar: #{e}"
     end
   end
diff --git a/app/models/concerns/account_header.rb b/app/models/concerns/account_header.rb
index 8fa5e16163..42f556a46e 100644
--- a/app/models/concerns/account_header.rb
+++ b/app/models/concerns/account_header.rb
@@ -34,7 +34,7 @@ module AccountHeader
 
       self.header              = URI.parse(parsed_url.to_s)
       self[:header_remote_url] = url
-    rescue OpenURI::HTTPError => e
+    rescue OpenURI::HTTPError, OpenSSL::SSL::SSLError, Paperclip::Errors::NotIdentifiedByImageMagickError => e
       Rails.logger.debug "Error fetching remote header: #{e}"
     end
   end
diff --git a/app/services/process_feed_service.rb b/app/services/process_feed_service.rb
index 70c05c9385..1558f87906 100644
--- a/app/services/process_feed_service.rb
+++ b/app/services/process_feed_service.rb
@@ -223,7 +223,7 @@ class ProcessFeedService < BaseService
         begin
           media.file_remote_url = link['href']
           media.save
-        rescue OpenURI::HTTPError, Paperclip::Errors::NotIdentifiedByImageMagickError
+        rescue OpenURI::HTTPError, OpenSSL::SSL::SSLError, Paperclip::Errors::NotIdentifiedByImageMagickError
           next
         end
       end
-- 
GitLab