<?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>150728</bug_id>
          
          <creation_ts>2015-10-30 12:41:31 -0700</creation_ts>
          <short_desc>leaks seen in fast/css/variables tests</short_desc>
          <delta_ts>2016-06-04 16:01:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>andersca</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>hyatt</cc>
    
    <cc>joepeck</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1137933</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-10-30 12:41:31 -0700</bug_when>
    <thetext>* SUMMARY
CSSParserValueList leaks seen in fast/css/variables tests.

* STEPS TO REPRODUCE
shell&gt; run-webkit-tests --leaks -1 fast/css/variables

* NOTES
- Debug build will probably get you better allocation stacks then what I got.

* LEAK
Leak: 0x7f85e0c30b60  size=160  zone: DefaultMallocZone_0x10bf86000
	0x00000000 0x00000000 0xe0c30b78 0x00007f85 	........x.......
	0x00000004 0x00000001 0x00000000 0x3ff00000 	...............?
	0x00000000 0x3ff00000 0x74b29a50 0x00007fff 	.......?P..t....
	0x00000005 0x00007fff 0x00000010 0x005a000f 	..............Z.
	0x00000000 0x00000000 0x5e0c2ffb 0x000507f8 	........./.^....
	0x00000002 0x00000011 0xe0c30bc4 0x00007f85 	................
	0x0164d908 0x706d7564 0x656c6553 0x6f697463 	..d.dumpSelectio
	0x6365526e 0x00000074 0xe0c30be4 0x00007f85 	nRect...........
	...
	Call stack: [thread 0x7fff733f9000]: 
        | 0x2 
        | start 
        | DumpRenderTreeMain(int, char const**) DumpRenderTree.mm:1430 
        | dumpRenderTree(int, char const**) DumpRenderTree.mm:1294 
        | runTest(std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt; const&amp;) DumpRenderTree.mm:2037 
        | CFRunLoopRunSpecific 
        | __CFRunLoopRun 
        | __CFRunLoopDoSources0 
        | __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ 
        | MultiplexerSource::_perform(void*) 
        | MultiplexerSource::perform() 
        | RunloopBlockContext::perform() 
        | CFArrayApplyFunction 
        | RunloopBlockContext::_invoke_block(void const*, void*) 
        | _dispatch_block_invoke 
        | _dispatch_client_callout 
        | ___ZN27URLConnectionClient_Classic18_withDelegateAsyncEPKcU13block_pointerFvP16_CFURLConnectionPK33CFURLConnectionClientCurrent_VMaxE_block_invoke_2 
        | ___ZN27URLConnectionClient_Classic26_delegate_didFinishLoadingEU13block_pointerFvvE_block_invoke 
        | -[NSURLConnectionInternal _withActiveConnectionAndDelegate:] 
        | -[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:] 
        | __65-[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:]_block_invoke 
        | WebCore::SubresourceLoader::didFinishLoading(double) ResourceLoader.h:154 
        | WebCore::CachedRawResource::finishLoading(WebCore::SharedBuffer*) CachedRawResource.cpp:104 
        | WebCore::CachedResource::checkNotify() CachedResourceClientWalker.h:51 
        | WebCore::DocumentLoader::finishedLoading(double) ResourceErrorBase.h:42 
        | WebCore::DocumentWriter::end() RefPtr.h:71 
        | WebCore::DecodedDataDocumentParser::flush(WebCore::DocumentWriter&amp;) StdLibExtras.h:358 
        | WebCore::HTMLDocumentParser::append(WTF::RefPtr&lt;WTF::StringImpl&gt;&amp;&amp;) DocumentParser.h:71 
        | WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode) HTMLTokenizer.h:245 
        | WebCore::HTMLDocumentParser::constructTreeFromHTMLToken(WebCore::HTMLTokenizer::TokenPtr&amp;) HTMLDocumentParser.cpp:321 
        | WebCore::HTMLTreeBuilder::constructTree(WebCore::AtomicHTMLToken&amp;) HTMLTreeBuilder.cpp:343 
        | WebCore::HTMLTreeBuilder::processEndTag(WebCore::AtomicHTMLToken&amp;) HTMLTreeBuilder.cpp:2144 
        | WebCore::HTMLElementStack::pop() memory:2636 
        | WebCore::HTMLStyleElement::finishParsingChildren() HTMLStyleElement.cpp:90 
        | WebCore::InlineStyleSheetOwner::finishParsingChildren(WebCore::Element&amp;) StdLibExtras.h:358 
        | WebCore::InlineStyleSheetOwner::createSheet(WebCore::Element&amp;, WTF::String const&amp;) InlineStyleSheetOwner.cpp:157 
        | WebCore::StyleSheetContents::parseStringAtPosition(WTF::String const&amp;, WTF::TextPosition const&amp;, bool) StyleSheetContents.cpp:338 
        | WebCore::CSSParser::parseSheet(WebCore::StyleSheetContents*, WTF::String const&amp;, WTF::TextPosition const&amp;, WTF::Vector&lt;WTF::RefPtr&lt;WebCore::CSSRuleSourceData&gt;, 0ul, WTF::CrashOnOverflow, 16ul&gt;*, bool) CSSParser.cpp:462 
        | cssyyparse(WebCore::CSSParser*) CSSParserValues.h:141 
        | malloc 
        | malloc_zone_malloc 

* NOTES
You may consider looking at:

    CSSValueList::buildParserValueSubstitutingVariables
    CSSValueList::buildParserValueListSubstitutingVariables

I think in error cases a CSSParserValueList may not be getting deleted properly. But there may be other issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199198</commentid>
    <comment_count>1</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-06-03 19:30:49 -0700</bug_when>
    <thetext>I suspect https://trac.webkit.org/changeset/201608 fixed this. However, I will wait and test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199209</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-06-03 20:07:04 -0700</bug_when>
    <thetext>Nope, still see leaks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199267</commentid>
    <comment_count>3</comment_count>
      <attachid>280523</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-06-04 13:31:06 -0700</bug_when>
    <thetext>Created attachment 280523
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199268</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-06-04 13:32:19 -0700</bug_when>
    <thetext>I suspect the CSSParserValueList leaks were fixed by https://trac.webkit.org/changeset/201608 -- the patch fixes the String leaks that were still happening. Together the two changes have fixed all the leaks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199303</commentid>
    <comment_count>5</comment_count>
      <attachid>280523</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-06-04 15:52:43 -0700</bug_when>
    <thetext>Comment on attachment 280523
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=280523&amp;action=review

&gt; Source/WebCore/css/CSSPrimitiveValue.cpp:285
&gt; +        return true;
&gt; +    default:
&gt; +        return false;

I&apos;d list all the other types here instead of having a default case so we&apos;ll fail to compile if someone adds another type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199310</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-06-04 16:01:26 -0700</bug_when>
    <thetext>Committed r201690: &lt;http://trac.webkit.org/changeset/201690&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280523</attachid>
            <date>2016-06-04 13:31:06 -0700</date>
            <delta_ts>2016-06-04 15:52:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-150728-20160604133228.patch</filename>
            <type>text/plain</type>
            <size>7064</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxNjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWQyMjc5NDBjYWJhNzRh
ZTlhM2I4NDZmMmU3ZjIyNzM3NzEwYmU3MC4uY2M0ZWM1MjM2NDliYWQ0OGUxM2Q3OWVmOTc4NWQz
ZDFmMjU5N2E3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE2LTA2LTA0ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBDU1NQYXJzZXJWYWx1ZUxpc3Qg
bGVha3Mgc2VlbiBpbiBmYXN0L2Nzcy92YXJpYWJsZXMgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDcyOAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeGVzIGxlYWtzIHNlZW4gcnVubmluZyBm
YXN0L2Nzcy92YXJpYWJsZXMgdGVzdHMgd2l0aCBsZWFrIGNoZWNraW5nIHR1cm5lZCBvbi4KKwor
ICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpp
c1N0cmluZ1R5cGUpOiBBZGRlZC4gRm9yIGRlYnVnZ2luZyBwdXJwb3NlcyBzbyB3ZSBjYXRjaCBj
YXNlcyB3aGVyZSB3ZQorICAgICAgICBhcmUgbm90IHRyZWF0aW5nIHN0cmluZ3MgY29uc2lzdGVu
dGx5IGJldHdlZW4gY29uc3RydWN0aW9uIGFuZCBkZXN0cnVjdGlvbi4KKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZSk6IEFzc2VydCBpc1N0cmlu
Z1R5cGUgcmV0dXJucyB0cnVlLgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6
OmNsZWFudXApOiBBZGRlZCBDU1NfRElNRU5TSU9OIGFuZCBDU1NfUEFSU0VSX0lERU5USUZJRVIK
KyAgICAgICAgdG8gdGhlIGxpc3Qgb2YgdHlwZXMgdGhhdCBoYXZlIHRvIGRlY3JlbWVudCB0aGUg
cmVmZXJlbmNlIGNvdW50IG9mIHRoZSBzdHJpbmcgd2Ugb3duLgorICAgICAgICBCb3RoIHR5cGVz
IGFyZSBwYXNzZWQgdG8gdGhlIHN0cmluZyBjb25zdHJ1Y3RvciBhYm92ZS4KKworICAgICAgICAq
IGNzcy9DU1NWYWx1ZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVMaXN0Ojpi
dWlsZFBhcnNlclZhbHVlTGlzdFN1YnN0aXR1dGluZ1ZhcmlhYmxlcyk6IFJlc3RydWN0dXJlZCB0
aGUKKyAgICAgICAgY29kZSBzbyB3ZSBkZXN0cm95IGFueSBDU1NQYXJzZXJWYWx1ZSB0aGF0IHdl
IGRvbid0IHVzZS4gVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSBvZiB0aGUKKyAgICAgICAgcGVjdWxp
YXIgcmVxdWlyZW1lbnRzIG9mIENTU1BhcnNlclZhbHVlOiBpdCBoYXMgYSBiZSBhIHN0cnVjdCB3
aXRob3V0IGEgZGVzdHJ1Y3RvciBzbworICAgICAgICBpdCBjYW4gYmUgdXNlZCBpbiB0aGUgQ1NT
IGdyYW1tYXIsIHNvIHdlIGhhdmUgdG8gZGVzdHJveSBpdCBleHBsaWNpdGx5LiBJZGVhbGx5IHdl
IHdvdWxkCisgICAgICAgIG1pbmltaXplIGFueSB1c2Ugb2YgaXQgb3V0c2lkZSB0aGUgQ1NTUGFy
c2VyIGl0c2VsZiwgYnV0IGFzIGxvbmcgYXMgd2UgYXJlIHVzaW5nIGl0LCB3ZQorICAgICAgICBu
ZWVkIHRvIGRvIHRoaXMgZXhwbGljaXQgZGVzdHJ1Y3Rpb24uCisKIDIwMTYtMDYtMDQgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBdm9pZCByZWR1bmRhbnQgaXNV
bmRlZmluZWQoKSBjaGVjayBmb3IgcGFyYW1ldGVycyB0aGF0IGFyZSBib3RoIG9wdGlvbmFsIGFu
ZCBudWxsYWJsZSBpbiBvdmVybG9hZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQcmltaXRpdmVWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFs
dWUuY3BwCmluZGV4IDU4YTljZmVkNTRhNDQ5N2EwZDhlMmIwZTliMzM5YTQ2YjJkNWRiNmUuLjc0
ZDNiYjAzZWIwMjcyMDBlMTBiZmM2OTc1ZGFiNjYzYWJmODZlY2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcApAQCAtMjY3LDExICsyNjcsMzMgQEAgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKGRvdWJsZSBudW0sIFVuaXRUeXBlcyB0eXBlKQog
ICAgIG1fdmFsdWUubnVtID0gbnVtOwogfQogCi1DU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0
aXZlVmFsdWUoY29uc3QgU3RyaW5nJiBzdHIsIFVuaXRUeXBlcyB0eXBlKQorI2lmICFBU1NFUlRf
RElTQUJMRUQKKworc3RhdGljIGlubGluZSBib29sIGlzU3RyaW5nVHlwZShDU1NQcmltaXRpdmVW
YWx1ZTo6VW5pdFR5cGVzIHR5cGUpCit7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NUUklORzoKKyAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfVVJJOgorICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19BVFRSOgorICAgIGNh
c2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19DT1VOVEVSX05BTUU6CisgICAgY2FzZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTX0RJTUVOU0lPTjoKKyAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NfUEFSU0VSX0hFWENPTE9SOgorICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QQVJT
RVJfSURFTlRJRklFUjoKKyAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEFSU0VSX1dI
SVRFU1BBQ0U6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9Cit9CisKKyNlbmRpZgorCitDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
UHJpbWl0aXZlVmFsdWUoY29uc3QgU3RyaW5nJiBzdHJpbmcsIFVuaXRUeXBlcyB0eXBlKQogICAg
IDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7CisgICAgQVNTRVJUKGlzU3RyaW5nVHlwZSh0
eXBlKSk7CiAgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IHR5cGU7Ci0gICAgaWYgKChtX3ZhbHVl
LnN0cmluZyA9IHN0ci5pbXBsKCkpKQorICAgIGlmICgobV92YWx1ZS5zdHJpbmcgPSBzdHJpbmcu
aW1wbCgpKSkKICAgICAgICAgbV92YWx1ZS5zdHJpbmctPnJlZigpOwogfQogCkBAIC00NDcsMTMg
KzQ2OSwxNyBAQCBDU1NQcmltaXRpdmVWYWx1ZTo6fkNTU1ByaW1pdGl2ZVZhbHVlKCkKIAogdm9p
ZCBDU1NQcmltaXRpdmVWYWx1ZTo6Y2xlYW51cCgpCiB7Ci0gICAgc3dpdGNoIChzdGF0aWNfY2Fz
dDxVbml0VHlwZXM+KG1fcHJpbWl0aXZlVW5pdFR5cGUpKSB7CisgICAgYXV0byB0eXBlID0gc3Rh
dGljX2Nhc3Q8VW5pdFR5cGVzPihtX3ByaW1pdGl2ZVVuaXRUeXBlKTsKKyAgICBzd2l0Y2ggKHR5
cGUpIHsKICAgICBjYXNlIENTU19TVFJJTkc6CiAgICAgY2FzZSBDU1NfVVJJOgogICAgIGNhc2Ug
Q1NTX0FUVFI6CiAgICAgY2FzZSBDU1NfQ09VTlRFUl9OQU1FOgorICAgIGNhc2UgQ1NTX0RJTUVO
U0lPTjoKICAgICBjYXNlIENTU19QQVJTRVJfSEVYQ09MT1I6CisgICAgY2FzZSBDU1NfUEFSU0VS
X0lERU5USUZJRVI6CiAgICAgY2FzZSBDU1NfUEFSU0VSX1dISVRFU1BBQ0U6CisgICAgICAgIEFT
U0VSVChpc1N0cmluZ1R5cGUodHlwZSkpOwogICAgICAgICBpZiAobV92YWx1ZS5zdHJpbmcpCiAg
ICAgICAgICAgICBtX3ZhbHVlLnN0cmluZy0+ZGVyZWYoKTsKICAgICAgICAgYnJlYWs7CkBAIC01
MjYsMTMgKzU1MiwxMiBAQCB2b2lkIENTU1ByaW1pdGl2ZVZhbHVlOjpjbGVhbnVwKCkKICAgICBj
YXNlIENTU19GUjoKICAgICBjYXNlIENTU19JREVOVDoKICAgICBjYXNlIENTU19SR0JDT0xPUjoK
LSAgICBjYXNlIENTU19ESU1FTlNJT046CiAgICAgY2FzZSBDU1NfVU5LTk9XTjoKICAgICBjYXNl
IENTU19VTklDT0RFX1JBTkdFOgogICAgIGNhc2UgQ1NTX1BBUlNFUl9PUEVSQVRPUjoKLSAgICBj
YXNlIENTU19QQVJTRVJfSURFTlRJRklFUjoKICAgICBjYXNlIENTU19QUk9QRVJUWV9JRDoKICAg
ICBjYXNlIENTU19WQUxVRV9JRDoKKyAgICAgICAgQVNTRVJUKCFpc1N0cmluZ1R5cGUodHlwZSkp
OwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NWYWx1ZUxpc3QuY3BwCmluZGV4IGZlYzIxNTI1ZDM5YjU1MjQ2MTQzMzNh
ZGRkMjUyMDc4NDYxYzBkMWMuLmZlOTdiMzk2OTJkYzUxMjNiMWE4YmEwNjc5MzYyYWY4YWI0MmIy
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxpc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxpc3QuY3BwCkBAIC0yNDcsMzMgKzI0Nyw0NSBA
QCBib29sIENTU1ZhbHVlTGlzdDo6YnVpbGRQYXJzZXJWYWx1ZVN1YnN0aXR1dGluZ1ZhcmlhYmxl
cyhDU1NQYXJzZXJWYWx1ZSogcmVzdWx0LAogCiBib29sIENTU1ZhbHVlTGlzdDo6YnVpbGRQYXJz
ZXJWYWx1ZUxpc3RTdWJzdGl0dXRpbmdWYXJpYWJsZXMoQ1NTUGFyc2VyVmFsdWVMaXN0KiBwYXJz
ZXJMaXN0LCBjb25zdCBDdXN0b21Qcm9wZXJ0eVZhbHVlTWFwJiBjdXN0b21Qcm9wZXJ0aWVzKSBj
b25zdAogewotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3ZhbHVlcy5zaXplKCk7ICsr
aSkgewotICAgICAgICBDU1NQYXJzZXJWYWx1ZSByZXN1bHQ7Ci0gICAgICAgIHJlc3VsdC5pZCA9
IENTU1ZhbHVlSW52YWxpZDsKLSAgICAgICAgc3dpdGNoIChtX3ZhbHVlc1tpXS0+Y2xhc3NUeXBl
KCkpIHsKLSAgICAgICAgY2FzZSBGdW5jdGlvbkNsYXNzOgotICAgICAgICAgICAgaWYgKCFkb3du
Y2FzdDxDU1NGdW5jdGlvblZhbHVlPigqbV92YWx1ZXNbaV0ucHRyKCkpLmJ1aWxkUGFyc2VyVmFs
dWVTdWJzdGl0dXRpbmdWYXJpYWJsZXMoJnJlc3VsdCwgY3VzdG9tUHJvcGVydGllcykpCisgICAg
Zm9yIChhdXRvJiB2YWx1ZSA6IG1fdmFsdWVzKSB7CisgICAgICAgIHN3aXRjaCAodmFsdWUuZ2V0
KCkuY2xhc3NUeXBlKCkpIHsKKyAgICAgICAgY2FzZSBGdW5jdGlvbkNsYXNzOiB7CisgICAgICAg
ICAgICBDU1NQYXJzZXJWYWx1ZSByZXN1bHQ7CisgICAgICAgICAgICByZXN1bHQuaWQgPSBDU1NW
YWx1ZUludmFsaWQ7CisgICAgICAgICAgICBpZiAoIWRvd25jYXN0PENTU0Z1bmN0aW9uVmFsdWU+
KHZhbHVlLmdldCgpKS5idWlsZFBhcnNlclZhbHVlU3Vic3RpdHV0aW5nVmFyaWFibGVzKCZyZXN1
bHQsIGN1c3RvbVByb3BlcnRpZXMpKSB7CisgICAgICAgICAgICAgICAgV2ViQ29yZTo6ZGVzdHJv
eShyZXN1bHQpOwogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIHBhcnNlckxpc3QtPmFkZFZhbHVlKHJlc3VsdCk7CiAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBWYWx1ZUxpc3RDbGFzczoKLSAgICAgICAgICAgIGlmICghZG93
bmNhc3Q8Q1NTVmFsdWVMaXN0PigqbV92YWx1ZXNbaV0ucHRyKCkpLmJ1aWxkUGFyc2VyVmFsdWVT
dWJzdGl0dXRpbmdWYXJpYWJsZXMoJnJlc3VsdCwgY3VzdG9tUHJvcGVydGllcykpCisgICAgICAg
IH0KKyAgICAgICAgY2FzZSBWYWx1ZUxpc3RDbGFzczogeworICAgICAgICAgICAgQ1NTUGFyc2Vy
VmFsdWUgcmVzdWx0OworICAgICAgICAgICAgcmVzdWx0LmlkID0gQ1NTVmFsdWVJbnZhbGlkOwor
ICAgICAgICAgICAgaWYgKCFkb3duY2FzdDxDU1NWYWx1ZUxpc3Q+KHZhbHVlLmdldCgpKS5idWls
ZFBhcnNlclZhbHVlU3Vic3RpdHV0aW5nVmFyaWFibGVzKCZyZXN1bHQsIGN1c3RvbVByb3BlcnRp
ZXMpKSB7CisgICAgICAgICAgICAgICAgV2ViQ29yZTo6ZGVzdHJveShyZXN1bHQpOwogICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIHBhcnNl
ckxpc3QtPmFkZFZhbHVlKHJlc3VsdCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQog
ICAgICAgICBjYXNlIFZhcmlhYmxlQ2xhc3M6IHsKLSAgICAgICAgICAgIGlmICghZG93bmNhc3Q8
Q1NTVmFyaWFibGVWYWx1ZT4oKm1fdmFsdWVzW2ldLnB0cigpKS5idWlsZFBhcnNlclZhbHVlTGlz
dFN1YnN0aXR1dGluZ1ZhcmlhYmxlcyhwYXJzZXJMaXN0LCBjdXN0b21Qcm9wZXJ0aWVzKSkKKyAg
ICAgICAgICAgIGlmICghZG93bmNhc3Q8Q1NTVmFyaWFibGVWYWx1ZT4odmFsdWUuZ2V0KCkpLmJ1
aWxkUGFyc2VyVmFsdWVMaXN0U3Vic3RpdHV0aW5nVmFyaWFibGVzKHBhcnNlckxpc3QsIGN1c3Rv
bVByb3BlcnRpZXMpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGNhc2UgUHJpbWl0aXZlQ2xhc3M6CisgICAgICAg
IGNhc2UgUHJpbWl0aXZlQ2xhc3M6IHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBXaWxsIGhhdmUg
dG8gY2hhbmdlIHRoaXMgaWYgd2Ugc3RhcnQgcHJlc2VydmluZyBpbnZhbGlkIHRva2Vucy4KLSAg
ICAgICAgICAgIGlmIChkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKm1fdmFsdWVzW2ldLnB0
cigpKS5idWlsZFBhcnNlclZhbHVlKCZyZXN1bHQpKQorICAgICAgICAgICAgQ1NTUGFyc2VyVmFs
dWUgcmVzdWx0OworICAgICAgICAgICAgcmVzdWx0LmlkID0gQ1NTVmFsdWVJbnZhbGlkOworICAg
ICAgICAgICAgaWYgKGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZS5nZXQoKSkuYnVp
bGRQYXJzZXJWYWx1ZSgmcmVzdWx0KSkKICAgICAgICAgICAgICAgICBwYXJzZXJMaXN0LT5hZGRW
YWx1ZShyZXN1bHQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIFdlYkNvcmU6
OmRlc3Ryb3kocmVzdWx0KTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAg
IGRlZmF1bHQ6CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgfQo=
</data>
<flag name="review"
          id="304464"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>