<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>118505</bug_id>
          
          <creation_ts>2013-07-09 07:03:52 -0700</creation_ts>
          <short_desc>Leak: TextCodecICU::registerCodecs is leaking</short_desc>
          <delta_ts>2017-11-28 14:39:11 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Text</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=154737</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=160931</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>116317</blocked>
    
    <blocked>106716</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brian Holt">brian.holt</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>ap</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>joepeck</cc>
    
    <cc>menard</cc>
    
    <cc>mrobinson</cc>
    
    <cc>psolanki</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>907104</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Holt">brian.holt</who>
    <bug_when>2013-07-09 07:03:52 -0700</bug_when>
    <thetext>In Source/WebCore/platform/text/TextCodecICU.cpp:215

Leaks found using the &quot;--leak&quot; option in the Gtk port:

Command: /home/likewise-open/SERILOCAL/brian.holt/Code/gnome3/WebKit/WebKitBuild/Debug/Programs/DumpRenderTree -
Leak_DefinitelyLost
70 bytes in 7 blocks are definitely lost in loss record 10,235 of 17,061
    malloc (/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    WTF::fastMalloc(unsigned long) (/WebKitBuild/Debug/../../Source/WTF/wtf/FastMalloc.cpp:286)
    WTF::fastStrDup(char const*) (/WebKitBuild/Debug/../../Source/WTF/wtf/FastMalloc.cpp:219)
    WebCore::TextCodecICU::registerCodecs(void (*)(char const*, WTF::PassOwnPtr&lt;WebCore::TextCodec&gt; (*)(WebCore::TextEncoding const&amp;, void const*), void const*)) (/WebKitBuild/Debug/../../Source/WebCore/platform/text/TextCodecICU.cpp:215)
    WebCore::extendTextCodecMaps() (/WebKitBuild/Debug/../../Source/WebCore/platform/text/TextEncodingRegistry.cpp:293)
    WebCore::atomicCanonicalTextEncodingName(char const*) (/WebKitBuild/Debug/../../Source/WebCore/platform/text/TextEncodingRegistry.cpp:338)
    char const* WebCore::atomicCanonicalTextEncodingName&lt;unsigned char&gt;(unsigned char const*, unsigned long) (/WebKitBuild/Debug/../../Source/WebCore/platform/text/TextEncodingRegistry.cpp:355)
    WebCore::atomicCanonicalTextEncodingName(WTF::String const&amp;) (/WebKitBuild/Debug/../../Source/WebCore/platform/text/TextEncodingRegistry.cpp:364)
    WebCore::TextEncoding::TextEncoding(WTF::String const&amp;) (/WebKitBuild/Debug/../../Source/WebCore/platform/text/TextEncoding.cpp:57)
    WebCore::XMLHttpRequest::didReceiveData(char const*, int) (/WebKitBuild/Debug/../../Source/WebCore/xml/XMLHttpRequest.cpp:1198)
    WebCore::DocumentThreadableLoader::didReceiveData(unsigned long, char const*, int) (/WebKitBuild/Debug/../../Source/WebCore/loader/DocumentThreadableLoader.cpp:299)
    WebCore::DocumentThreadableLoader::loadRequest(WebCore::ResourceRequest const&amp;, WebCore::SecurityCheckPolicy) (/WebKitBuild/Debug/../../Source/WebCore/loader/DocumentThreadableLoader.cpp:426)
    WebCore::DocumentThreadableLoader::DocumentThreadableLoader(WebCore::Document*, WebCore::ThreadableLoaderClient*, WebCore::DocumentThreadableLoader::BlockingBehavior, WebCore::ResourceRequest const&amp;, WebCore::ThreadableLoaderOptions const&amp;) (/WebKitBuild/Debug/../../Source/WebCore/loader/DocumentThreadableLoader.cpp:87)
    WebCore::DocumentThreadableLoader::loadResourceSynchronously(WebCore::Document*, WebCore::ResourceRequest const&amp;, WebCore::ThreadableLoaderClient&amp;, WebCore::ThreadableLoaderOptions const&amp;) (/WebKitBuild/Debug/../../Source/WebCore/loader/DocumentThreadableLoader.cpp:61)
    WebCore::ThreadableLoader::loadResourceSynchronously(WebCore::ScriptExecutionContext*, WebCore::ResourceRequest const&amp;, WebCore::ThreadableLoaderClient&amp;, WebCore::ThreadableLoaderOptions const&amp;) (/WebKitBuild/Debug/../../Source/WebCore/loader/ThreadableLoader.cpp:78)
    WebCore::XMLHttpRequest::createRequest(int&amp;) (/WebKitBuild/Debug/../../Source/WebCore/xml/XMLHttpRequest.cpp:818)
    WebCore::XMLHttpRequest::send(WTF::String const&amp;, int&amp;) (/WebKitBuild/Debug/../../Source/WebCore/xml/XMLHttpRequest.cpp:644)
    WebCore::JSXMLHttpRequest::send(JSC::ExecState*) (/WebKitBuild/Debug/../../Source/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp:133)
    WebCore::jsXMLHttpRequestPrototypeFunctionSend(JSC::ExecState*) (/WebKitBuild/Debug/DerivedSources/WebCore/JSXMLHttpRequest.cpp:643)
    0x3959E0E4 ()
    JSC::JITCode::execute(JSC::JSStack*, JSC::ExecState*, JSC::VM*) (/WebKitBuild/Debug/../../Source/JavaScriptCore/jit/JITCode.h:135)
    JSC::Interpreter::execute(JSC::EvalExecutable*, JSC::ExecState*, JSC::JSValue, JSC::JSScope*) (/WebKitBuild/Debug/../../Source/JavaScriptCore/interpreter/Interpreter.cpp:1286)
    JSC::eval(JSC::ExecState*) (/WebKitBuild/Debug/../../Source/JavaScriptCore/interpreter/Interpreter.cpp:160)
    llint_slow_path_call_eval (/WebKitBuild/Debug/../../Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:1489)
    0x59927D4 (/home/likewise-open/SERILOCAL/brian.holt/Code/gnome3/WebKit/WebKitBuild/Debug/.libs/libjavascriptcoregtk-3.0.so.0.14.1)
    JSC::JITCode::execute(JSC::JSStack*, JSC::ExecState*, JSC::VM*) (/WebKitBuild/Debug/../../Source/JavaScriptCore/jit/JITCode.h:135)
    JSC::Interpreter::execute(JSC::ProgramExecutable*, JSC::ExecState*, JSC::JSObject*) (/WebKitBuild/Debug/../../Source/JavaScriptCore/interpreter/Interpreter.cpp:937)
    JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&amp;, JSC::JSValue, JSC::JSValue*) (/WebKitBuild/Debug/../../Source/JavaScriptCore/runtime/Completion.cpp:83)
    WebCore::JSMainThreadExecState::evaluate(JSC::ExecState*, JSC::SourceCode const&amp;, JSC::JSValue, JSC::JSValue*) (/WebKitBuild/Debug/../../Source/WebCore/bindings/js/JSMainThreadExecState.h:77)
    WebCore::ScriptController::evaluateInWorld(WebCore::ScriptSourceCode const&amp;, WebCore::DOMWrapperWorld*) (/WebKitBuild/Debug/../../Source/WebCore/bindings/js/ScriptController.cpp:142)
    WebCore::ScriptController::evaluate(WebCore::ScriptSourceCode const&amp;) (/WebKitBuild/Debug/../../Source/WebCore/bindings/js/ScriptController.cpp:158)
    WebCore::ScriptElement::executeScript(WebCore::ScriptSourceCode const&amp;) (/WebKitBuild/Debug/../../Source/WebCore/dom/ScriptElement.cpp:316)
    WebCore::ScriptElement::prepareScript(WTF::TextPosition const&amp;, WebCore::ScriptElement::LegacyTypeSupport) (/WebKitBuild/Debug/../../Source/WebCore/dom/ScriptElement.cpp:245)
    WebCore::HTMLScriptRunner::runScript(WebCore::Element*, WTF::TextPosition const&amp;) (/WebKitBuild/Debug/../../Source/WebCore/html/parser/HTMLScriptRunner.cpp:312)
    WebCore::HTMLScriptRunner::execute(WTF::PassRefPtr&lt;WebCore::Element&gt;, WTF::TextPosition const&amp;) (/WebKitBuild/Debug/../../Source/WebCore/html/parser/HTMLScriptRunner.cpp:181)
    WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder() (/WebKitBuild/Debug/../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:271)
    WebCore::HTMLDocumentParser::canTakeNextToken(WebCore::HTMLDocumentParser::SynchronousMode, WebCore::PumpSession&amp;) (/WebKitBuild/Debug/../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:290)
    WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode) (/WebKitBuild/Debug/../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:535)
    WebCore::HTMLDocumentParser::pumpTokenizerIfPossible(WebCore::HTMLDocumentParser::SynchronousMode) (/WebKitBuild/Debug/../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:235)
    WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution() (/WebKitBuild/Debug/../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:896)
Suppression (error hash=#81F7BC2F68C3BF33#):
  For more info on using suppressions see http://dev.chromium.org/developers/tree-sheriffs/sheriff-details-chromium/memory-sheriff#TOC-Suppressing-memory-reports
{
   &lt;insert_a_suppression_name_here&gt;
   Memcheck:Leak
   fun:malloc
   fun:_ZN3WTF10fastMallocEm
   fun:_ZN3WTF10fastStrDupEPKc
   fun:_ZN7WebCore12TextCodecICU14registerCodecsEPFvPKcPFN3WTF10PassOwnPtrINS_9TextCodecEEERKNS_12TextEncodingEPKvESB_E
   fun:_ZN7WebCoreL19extendTextCodecMapsEv
   fun:_ZN7WebCore31atomicCanonicalTextEncodingNameEPKc
   fun:_ZN7WebCore31atomicCanonicalTextEncodingNameIhEEPKcPKT_m
   fun:_ZN7WebCore31atomicCanonicalTextEncodingNameERKN3WTF6StringE
   fun:_ZN7WebCore12TextEncodingC1ERKN3WTF6StringE
   fun:_ZN7WebCore14XMLHttpRequest14didReceiveDataEPKci
   fun:_ZN7WebCore24DocumentThreadableLoader14didReceiveDataEmPKci
   fun:_ZN7WebCore24DocumentThreadableLoader11loadRequestERKNS_15ResourceRequestENS_19SecurityCheckPolicyE
   fun:_ZN7WebCore24DocumentThreadableLoaderC1EPNS_8DocumentEPNS_22ThreadableLoaderClientENS0_16BlockingBehaviorERKNS_15ResourceRequestERKNS_23ThreadableLoaderOptionsE
   fun:_ZN7WebCore24DocumentThreadableLoader25loadResourceSynchronouslyEPNS_8DocumentERKNS_15ResourceRequestERNS_22ThreadableLoaderClientERKNS_23ThreadableLoaderOptionsE
   fun:_ZN7WebCore16ThreadableLoader25loadResourceSynchronouslyEPNS_22ScriptExecutionContextERKNS_15ResourceRequestERNS_22ThreadableLoaderClientERKNS_23ThreadableLoaderOptionsE
   fun:_ZN7WebCore14XMLHttpRequest13createRequestERi
   fun:_ZN7WebCore14XMLHttpRequest4sendERKN3WTF6StringERi
   fun:_ZN7WebCore16JSXMLHttpRequest4sendEPN3JSC9ExecStateE
   fun:_ZN7WebCore37jsXMLHttpRequestPrototypeFunctionSendEPN3JSC9ExecStateE
   obj:*
   fun:_ZN3JSC7JITCode7executeEPNS_7JSStackEPNS_9ExecStateEPNS_2VME
   fun:_ZN3JSC11Interpreter7executeEPNS_14EvalExecutableEPNS_9ExecStateENS_7JSValueEPNS_7JSScopeE
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907109</commentid>
    <comment_count>1</comment_count>
      <attachid>206319</attachid>
    <who name="Brian Holt">brian.holt</who>
    <bug_when>2013-07-09 07:18:23 -0700</bug_when>
    <thetext>Created attachment 206319
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907134</commentid>
    <comment_count>2</comment_count>
      <attachid>206319</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-07-09 09:15:40 -0700</bug_when>
    <thetext>Comment on attachment 206319
Patch

I think that the leak may be real, but the fix is not right.

Generally, these strings are permanently stored in textCodecMap, and not leaked. One case where a leak may occur is when the same webStandardName is registered multiple times - when this happens, map value is thrown away.

However, I don&apos;t think that it&apos;s correct to remove fastStrDup. The result of ucnv_getCanonicalName is not documented to remain useful indefinitely - for example, they may be reusing a static buffer. So, we need our own copy of the string.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907148</commentid>
    <comment_count>3</comment_count>
    <who name="Brian Holt">brian.holt</who>
    <bug_when>2013-07-09 09:40:22 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 206319 [details])
&gt; I think that the leak may be real, but the fix is not right.
&gt; 
&gt; Generally, these strings are permanently stored in textCodecMap, and not leaked. One case where a leak may occur is when the same webStandardName is registered multiple times - when this happens, map value is thrown away.
&gt; 
&gt; However, I don&apos;t think that it&apos;s correct to remove fastStrDup. The result of ucnv_getCanonicalName is not documented to remain useful indefinitely - for example, they may be reusing a static buffer. So, we need our own copy of the string.

Thanks for your comments.  It seems that there might be some inconsistency in the way that the memory is handled.  If we need our own copy of the string, should we also make a copy of canonicalConverterName on line 193?

And if we&apos;re making copies then should the responsibility fall to TextCodecMap to free the additional data? But the additionalData is const implying (at least to me) that the TextCodecMap doesn&apos;t own that data.  

What would you suggest would be the best way to address the leak?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907158</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-07-09 09:58:15 -0700</bug_when>
    <thetext>&gt; If we need our own copy of the string, should we also make a copy of canonicalConverterName on line 193?

Indeed!
 
&gt; And if we&apos;re making copies then should the responsibility fall to TextCodecMap to free the additional data? But the additionalData is const implying (at least to me) that the TextCodecMap doesn&apos;t own that data.  

Generally speaking, constness is separate from ownership, it&apos;s perfectly fine to free a const pointer.

The tricky part here is that additional data is not necessarily a string pointer - TextCodecMap passes a pointer to a number. So the function to delete additional data needs to be provided by caller.

&gt; What would you suggest would be the best way to address the leak?

I think that we shouldn&apos;t enumerate ICU aliases at all, and have our own encoding name table that&apos;s suitable for the web instead (similarly to what TextCodecMac does for legacy Mac encodings). That would be a valuable architectural improvement, and it would sidestep this issue entirely.

Given the complexity of fixing only this leak, we should consider just implementing the above idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951483</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-11-17 22:19:45 -0800</bug_when>
    <thetext>&lt;rdar://problem/15486167&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036278</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-09-19 19:35:49 -0700</bug_when>
    <thetext>*** Bug 136973 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086983</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-04-20 20:06:47 -0700</bug_when>
    <thetext>*** Bug 143975 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087052</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-04-21 08:45:21 -0700</bug_when>
    <thetext>It would be nice to fix this leak. But keep in mind that we leaked intentionally when originally creating this code, and it’s a little tricky to design this out. I like Alexey’s suggestion above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375498</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2017-11-28 13:26:49 -0800</bug_when>
    <thetext>This was fixed in r204605, just need to remove the special case from leaks parser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375501</commentid>
    <comment_count>10</comment_count>
      <attachid>327782</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2017-11-28 13:30:40 -0800</bug_when>
    <thetext>Created attachment 327782
stop silencing the leak</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375530</commentid>
    <comment_count>11</comment_count>
      <attachid>327782</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-11-28 14:19:30 -0800</bug_when>
    <thetext>Comment on attachment 327782
stop silencing the leak

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375540</commentid>
    <comment_count>12</comment_count>
      <attachid>327782</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-28 14:39:08 -0800</bug_when>
    <thetext>Comment on attachment 327782
stop silencing the leak

Clearing flags on attachment: 327782

Committed r225240: &lt;https://trac.webkit.org/changeset/225240&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375541</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-28 14:39:11 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206319</attachid>
            <date>2013-07-09 07:18:23 -0700</date>
            <delta_ts>2017-11-28 13:30:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118505-20130709151623.patch</filename>
            <type>text/plain</type>
            <size>1497</size>
            <attacher name="Brian Holt">brian.holt</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyNDkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTIyMmM4NDgzNzQ4MzM5
ZmNkYjNjODEwNWRmZGE3MWZjMzViMThlOC4uNzlhN2U4Mjc2ODFmMzUwZjM2ZGFiMjNkODg5ZDUw
MzI3YTM4N2U3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTA3LTA5ICBCcmlh
biBIb2x0ICA8YnJpYW4uaG9sdEBzYW1zdW5nLmNvbT4KKworICAgICAgICBMZWFrOiBUZXh0Q29k
ZWNJQ1U6OnJlZ2lzdGVyQ29kZWNzIGlzIGxlYWtpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODUwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeGVkIG1lbW9yeSBsZWFrIGJ5IHJlbW92aW5nIGNh
bGwgdG8gZHVwbGljYXRlIHN0cmluZy4KKworICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dENv
ZGVjSUNVLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDb2RlY0lDVTo6cmVnaXN0ZXJDb2Rl
Y3MpOgorCiAyMDEzLTA3LTA5ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5j
b20+CiAKICAgICAgICAgVXNlIHRvU1ZHRm9udEVsZW1lbnQoKSBpbnN0ZWFkIG9mIHN0YXRpY19j
YXN0PFNWR0ZvbnRFbGVtZW50Kj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvVGV4dENvZGVjSUNVLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4
dENvZGVjSUNVLmNwcAppbmRleCA4NmQ0ZWExNzI2NTQyM2Q0M2NmM2ZjYTYwMzAzZGU0MjY0Mzk5
YmNhLi40NjE1YTI5YTU5ODdlMmVlZWQzZjQ3ZTViMDExN2RhNWRjNmJkZmJlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNJQ1UuY3BwCkBAIC0yMTIsNyArMjEy
LDcgQEAgdm9pZCBUZXh0Q29kZWNJQ1U6OnJlZ2lzdGVyQ29kZWNzKFRleHRDb2RlY1JlZ2lzdHJh
ciByZWdpc3RyYXIpCiAgICAgICAgICAgICB8fCBzdHJjbXAod2ViU3RhbmRhcmROYW1lLCAiVElT
LTYyMCIpID09IDApCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICByZWdpc3RyYXIo
d2ViU3RhbmRhcmROYW1lLCBjcmVhdGUsIGZhc3RTdHJEdXAoY2Fub25pY2FsQ29udmVydGVyTmFt
ZSkpOworICAgICAgICByZWdpc3RyYXIod2ViU3RhbmRhcmROYW1lLCBjcmVhdGUsIGNhbm9uaWNh
bENvbnZlcnRlck5hbWUpOwogICAgIH0KIAogICAgIC8vIFRoZXNlIGVuY29kaW5ncyBjdXJyZW50
bHkgZG9uJ3QgaGF2ZSBzdGFuZGFyZCBuYW1lcywgc28gd2UgbmVlZCB0byByZWdpc3RlciBlbmNv
ZGVycyBtYW51YWxseS4K
</data>
<flag name="review"
          id="227990"
          type_id="1"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327782</attachid>
            <date>2017-11-28 13:30:40 -0800</date>
            <delta_ts>2017-11-28 14:39:08 -0800</delta_ts>
            <desc>stop silencing the leak</desc>
            <filename>RegisterCodecsLeaks.txt</filename>
            <type>text/plain</type>
            <size>2145</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyNTIzNykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE0IEBACisyMDE3LTExLTI4ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29t
PgorCisgICAgICAgIFN0b3Agc2lsZW5jaW5nIGxlYWtzIGluIFRleHRDb2RlY0lDVTo6cmVnaXN0
ZXJDb2RlY3MsIGFzIHRoZSBwcm9ibGVtIHdhcyBmaXhlZCBhIHdoaWxlIGFnby4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODUwNQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy92YWxncmlu
ZC9zdXBwcmVzc2lvbnMudHh0OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9sZWFr
ZGV0ZWN0b3IucHk6CisgICAgICAgIChMZWFrRGV0ZWN0b3IuX2NhbGxzdGFja3NfdG9fZXhjbHVk
ZV9mcm9tX2xlYWtzKToKKwogMjAxNy0xMS0yOCAgTXMyZ2VyICA8TXMyZ2VyQGlnYWxpYS5jb20+
CiAKICAgICAgICAgU3RvcCBtb2RpZnlpbmcgc2VsZi5leHBlY3RhdGlvbnMgaW4gVGVzdEV4cGVj
dGF0aW9uTGluZS5leHBlY3RlZF9iZWhhdmlvci4KSW5kZXg6IFRvb2xzL1NjcmlwdHMvdmFsZ3Jp
bmQvc3VwcHJlc3Npb25zLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3ZhbGdyaW5k
L3N1cHByZXNzaW9ucy50eHQJKHJldmlzaW9uIDIyNTIwMCkKKysrIFRvb2xzL1NjcmlwdHMvdmFs
Z3JpbmQvc3VwcHJlc3Npb25zLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNTk0LDggKzU5NCw2IEBA
CiB9CiAKIHsKLSAgICMgVGV4dENvZGVjSUNVOjpyZWdpc3RlckNvZGVjcyBpcyBsZWFraW5nIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTg1MDUKLSAgIFdlYkNvcmU6
OlRleHRDb2RlYzo6cmVnaXN0ZXJDb2RlY3MoKQogICAgTWVtY2hlY2s6TGVhawogICAgZnVuOm1h
bGxvYwogICAgZnVuOl9aTjNXVEYxMGZhc3RNYWxsb2NFbQpJbmRleDogVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9wb3J0L2xlYWtkZXRlY3Rvci5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3BvcnQvbGVha2RldGVjdG9yLnB5CShyZXZpc2lvbiAyMjUyMDApCisrKyBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbGVha2RldGVjdG9yLnB5CSh3b3JraW5nIGNvcHkpCkBA
IC01NCwxMiArNTQsOSBAQCBjbGFzcyBMZWFrRGV0ZWN0b3Iob2JqZWN0KToKIAogICAgIGRlZiBf
Y2FsbHN0YWNrc190b19leGNsdWRlX2Zyb21fbGVha3Moc2VsZik6CiAgICAgICAgIGNhbGxzdGFj
a3MgPSBbCi0gICAgICAgICAgICAnVGV4dENvZGVjSUNVOjpyZWdpc3RlckNvZGVjcycsICAjIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTg1MDUKKyAgICAgICAgICAg
ICMgTGlzdCBzdWJzdHJpbmdzIGhlcmUsIGUuZy4KKyAgICAgICAgICAgICMgJ1RleHRDb2RlY0lD
VTo6cmVnaXN0ZXJDb2RlY3MnLCAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTE4NTA1CiAgICAgICAgIF0KLSAgICAgICAgaWYgc2VsZi5fcG9ydC5vcGVyYXRpbmdf
c3lzdGVtID09ICdtYWMnIGFuZCBzZWxmLl9wb3J0LmlzX21hdmVyaWNrcygpOgotICAgICAgICAg
ICAgY2FsbHN0YWNrcyArPSBbCi0gICAgICAgICAgICAgICAgJ0FWQXNzZXRSZXNvdXJjZUxvYWRl
ciBfcG9zZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlV2l0aEtleTpkYXRhOnJlcXVlc3REaWN0aW9u
YXJ5OmZhbGxiYWNrSGFuZGxlcjonLCAgIyA8cmRhcjovL3Byb2JsZW0vMTk2OTk4ODc+IGxlYWsg
aW4gQVZGb3VuZGF0aW9uCi0gICAgICAgICAgICBdCiAgICAgICAgIHJldHVybiBjYWxsc3RhY2tz
CiAKICAgICBkZWYgX2xlYWtzX2FyZ3Moc2VsZiwgcGlkKToK
</data>

          </attachment>
      

    </bug>

</bugzilla>