From 009e120e13c220d10ba106b098666099d3effe51 Mon Sep 17 00:00:00 2001
From: Robin Ward <robin.ward@gmail.com>
Date: Mon, 8 May 2017 15:35:31 -0400
Subject: [PATCH] FIX: Don't raise an error when the img attribute cannot be
 found

---
 lib/cooked_post_processor.rb                  | 3 +++
 spec/components/cooked_post_processor_spec.rb | 6 ++++++
 2 files changed, 9 insertions(+)

diff --git a/lib/cooked_post_processor.rb b/lib/cooked_post_processor.rb
index e722ed842f7..48f1d38b494 100644
--- a/lib/cooked_post_processor.rb
+++ b/lib/cooked_post_processor.rb
@@ -158,6 +158,9 @@ class CookedPostProcessor
 
     absolute_url = url
     absolute_url = Discourse.base_url_no_prefix + absolute_url if absolute_url =~ /^\/[^\/]/
+
+    return unless absolute_url
+
     # FastImage fails when there's no scheme
     absolute_url = SiteSetting.scheme + ":" + absolute_url if absolute_url.start_with?("//")
 
diff --git a/spec/components/cooked_post_processor_spec.rb b/spec/components/cooked_post_processor_spec.rb
index 6709417be29..cc0f5f4467e 100644
--- a/spec/components/cooked_post_processor_spec.rb
+++ b/spec/components/cooked_post_processor_spec.rb
@@ -310,6 +310,12 @@ describe CookedPostProcessor do
       expect(cpp.get_size_from_attributes(img)).to eq([33, 100])
     end
 
+    it "doesn't raise an error with a weird url" do
+      img = { 'src' => nil, 'height' => 100}
+      SiteSetting.stubs(:crawl_images?).returns(true)
+      expect(cpp.get_size_from_attributes(img)).to be_nil
+    end
+
   end
 
   context ".get_size_from_image_sizes" do