Bug 1309117 - Make ImgFromData fallible. r?masayuki draft
authorMakoto Kato <m_kato@ga2.so-net.ne.jp>
Tue, 11 Oct 2016 19:28:30 +0900
changeset 423538 2bcb84731804b064ec08485adfcdc204d9b81348
parent 423365 723c2e894079d0c870a1b78679f971c7a1d3d31f
child 533479 8ea187e71af6d561ba9e37b09b4f86651e875143
push id31935
push userm_kato@ga2.so-net.ne.jp
push dateTue, 11 Oct 2016 10:54:30 +0000
reviewersmasayuki
bugs1309117
milestone52.0a1
Bug 1309117 - Make ImgFromData fallible. r?masayuki When pasting large image, it may cause OOM when generating base64 data. So we should use fallible allocator instead. Also, base64 is ASCII, so we should use AppendASCIItoUTF16 instead of AppendUTF8toUTF16. MozReview-Commit-ID: 8yWPxfEcEwv
editor/libeditor/HTMLEditorDataTransfer.cpp
--- a/editor/libeditor/HTMLEditorDataTransfer.cpp
+++ b/editor/libeditor/HTMLEditorDataTransfer.cpp
@@ -1020,17 +1020,19 @@ ImgFromData(const nsACString& aType, con
 {
   nsAutoCString data64;
   nsresult rv = Base64Encode(aData, data64);
   NS_ENSURE_SUCCESS(rv, rv);
 
   aOutput.AssignLiteral("<IMG src=\"data:");
   AppendUTF8toUTF16(aType, aOutput);
   aOutput.AppendLiteral(";base64,");
-  AppendUTF8toUTF16(data64, aOutput);
+  if (!AppendASCIItoUTF16(data64, aOutput, fallible_t())) {
+    return NS_ERROR_OUT_OF_MEMORY;
+  }
   aOutput.AppendLiteral("\" alt=\"\" >");
   return NS_OK;
 }
 
 NS_IMPL_ISUPPORTS(HTMLEditor::BlobReader, nsIEditorBlobListener)
 
 HTMLEditor::BlobReader::BlobReader(BlobImpl* aBlob,
                                    HTMLEditor* aHTMLEditor,