<?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>167744</bug_id>
          
          <creation_ts>2017-02-02 10:50:46 -0800</creation_ts>
          <short_desc>Correct memory leak in MediaConstraints</short_desc>
          <delta_ts>2017-02-03 12:55:02 -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>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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>
          <dependson>167753</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>andersca</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1272527</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-02-02 10:50:46 -0800</bug_when>
    <thetext>Static analysis discovered a memory leak in the handling of ConstraintHolders.

1. ConstraintHolder::create returns a reference to a “new” object.
2. m_variants holds a set of ConstraintHolder objects.
3. m_variants.append(ConstraintHolder::create(…)) copies the returned reference, leaking the new object.

I discussed this with Anders Carlsson, who confirmed that we should just return the object by value here, and return-value-optimization will make sure we efficiently use the memory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272528</commentid>
    <comment_count>1</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-02-02 10:52:49 -0800</bug_when>
    <thetext>&lt;rdar://problem/30331444&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272531</commentid>
    <comment_count>2</comment_count>
      <attachid>300419</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-02-02 10:55:19 -0800</bug_when>
    <thetext>Created attachment 300419
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272537</commentid>
    <comment_count>3</comment_count>
      <attachid>300419</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2017-02-02 10:59:25 -0800</bug_when>
    <thetext>Comment on attachment 300419
Patch

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

&gt; Source/WebCore/platform/mediastream/MediaConstraints.h:716
&gt; +        static ConstraintHolder create(const MediaConstraint&amp; value) { return *new ConstraintHolder(value); }

This should just be return ConstraintHolder(value) otherwise we&apos;ll still leak.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272555</commentid>
    <comment_count>4</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-02-02 11:34:35 -0800</bug_when>
    <thetext>Committed r211579: &lt;http://trac.webkit.org/changeset/211579&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272556</commentid>
    <comment_count>5</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-02-02 11:35:15 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 300419 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=300419&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/mediastream/MediaConstraints.h:716
&gt; &gt; +        static ConstraintHolder create(const MediaConstraint&amp; value) { return *new ConstraintHolder(value); }
&gt; 
&gt; This should just be return ConstraintHolder(value) otherwise we&apos;ll still
&gt; leak.

Done!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272602</commentid>
    <comment_count>6</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-02-02 13:15:57 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Committed r211579: &lt;http://trac.webkit.org/changeset/211579&gt;

This change caused 5 mediastream LayoutTests to crash:

https://build.webkit.org/results/Apple%20Sierra%20Release%20WK2%20(Tests)/r211582%20(3234)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272615</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-02 13:30:33 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 167753</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272619</commentid>
    <comment_count>8</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-02-02 13:31:42 -0800</bug_when>
    <thetext>This isn&apos;t quite right. I introduced some media stream crashes with this change, so I&apos;m rolling it out under https://bugs.webkit.org/show_bug.cgi?id=167753.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272745</commentid>
    <comment_count>9</comment_count>
      <attachid>300477</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-02-02 17:37:05 -0800</bug_when>
    <thetext>Created attachment 300477
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272746</commentid>
    <comment_count>10</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-02-02 17:39:05 -0800</bug_when>
    <thetext>The problem was that the move operator was not clearing the union, so when the &quot;move source&quot; was cleaned up, the memory was getting freed, even though the pointers had been moved to the &quot;move target&quot; location.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272777</commentid>
    <comment_count>11</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-02-02 20:22:40 -0800</bug_when>
    <thetext>Tests are happy. I just want to have Anders (or maybe Darin) check that the move operator is written properly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273023</commentid>
    <comment_count>12</comment_count>
      <attachid>300477</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2017-02-03 12:39:12 -0800</bug_when>
    <thetext>Comment on attachment 300477
Patch

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

&gt; Source/WebCore/platform/mediastream/MediaConstraints.h:749
&gt; +                m_value.asInteger = WTFMove(other.m_value.asInteger);
&gt; +                other.m_value.asInteger = nullptr;

No need to use move with pointers, just do something like

m_value.asInteger = std::exchange(other.m_value.asInteger, nullptr);

(same thing for the other cases).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273024</commentid>
    <comment_count>13</comment_count>
      <attachid>300477</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-02-03 12:41:21 -0800</bug_when>
    <thetext>Comment on attachment 300477
Patch

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

&gt;&gt; Source/WebCore/platform/mediastream/MediaConstraints.h:749
&gt;&gt; +                other.m_value.asInteger = nullptr;
&gt; 
&gt; No need to use move with pointers, just do something like
&gt; 
&gt; m_value.asInteger = std::exchange(other.m_value.asInteger, nullptr);
&gt; 
&gt; (same thing for the other cases).

Oh, cool! Will change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273029</commentid>
    <comment_count>14</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-02-03 12:55:02 -0800</bug_when>
    <thetext>Committed r211646: &lt;http://trac.webkit.org/changeset/211646&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300419</attachid>
            <date>2017-02-02 10:55:19 -0800</date>
            <delta_ts>2017-02-02 17:37:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167744-20170202105306.patch</filename>
            <type>text/plain</type>
            <size>1704</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMTU3MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE3LTAyLTAyICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIENvcnJlY3QgbWVtb3J5IGxl
YWsgaW4gTWVkaWFDb25zdHJhaW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTY3NzQ0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMDMzMTQ0ND4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb25zdHJh
aW50SG9sZGVyIHJldHVybnMgYSByZWZlcmVuY2UgdG8gYW4gb2JqZWN0IGNyZWF0ZWQgYnkgb3Bl
cmF0b3IgbmV3LiBXaGVuIHRoZQorICAgICAgICByZXR1cm5lZCB2YWx1ZSBpcyBhc3NpZ25lZCBv
ciBzdG9yZWQgaW4gVmVjdG9yIG9yIG90aGVyIGNvbnRhaW5lcnMgd2UgbGVhayBtZW1vcnkuCisg
ICAgICAgIEluc3RlYWQsIHRoaXMgdmFsdWUgc2hvdWxkIGp1c3QgYmUgcmV0dXJuZWQgYXMgYSBy
ZWd1bGFyIG9iamVjdCBzbyB0aGF0IHRoZSByZXR1cm4KKyAgICAgICAgdmFsdWUgb3B0aW1pemF0
aW9uIGNhbiBtYWtlIHN1cmUgbWVtb3J5IGlzIHByb3Blcmx5IChhbmQgZWZmaWNpZW50bHkpIHVz
ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmg6
CisgICAgICAgIChXZWJDb3JlOjpGbGF0dGVuZWRDb25zdHJhaW50OjpDb25zdHJhaW50SG9sZGVy
OjpjcmVhdGUpOiBSZXR1cm4gYnkgdmFsdWUuCisKIDIwMTctMDItMDIgIEFuZHJlYXMgS2xpbmcg
IDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIEluLXByb2Nlc3MgbWVtb3J5IHBy
ZXNzdXJlIG1vbml0b3IgZm9yIFdlYkNvbnRlbnQgcHJvY2Vzc2VzIEFLQSB3ZWJzYW0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNv
bnN0cmFpbnRzLmgJKHJldmlzaW9uIDIxMTUwMSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuaAkod29ya2luZyBjb3B5KQpAQCAtNzEzLDcg
KzcxMyw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgY2xhc3MgQ29uc3RyYWludEhvbGRlciB7
CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgQ29uc3RyYWludEhvbGRlciYgY3JlYXRlKGNv
bnN0IE1lZGlhQ29uc3RyYWludCYgdmFsdWUpIHsgcmV0dXJuICpuZXcgQ29uc3RyYWludEhvbGRl
cih2YWx1ZSk7IH0KKyAgICAgICAgc3RhdGljIENvbnN0cmFpbnRIb2xkZXIgY3JlYXRlKGNvbnN0
IE1lZGlhQ29uc3RyYWludCYgdmFsdWUpIHsgcmV0dXJuICpuZXcgQ29uc3RyYWludEhvbGRlcih2
YWx1ZSk7IH0KIAogICAgICAgICB+Q29uc3RyYWludEhvbGRlcigpCiAgICAgICAgIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300477</attachid>
            <date>2017-02-02 17:37:05 -0800</date>
            <delta_ts>2017-02-03 12:45:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167744-20170202173451.patch</filename>
            <type>text/plain</type>
            <size>4263</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMTYxNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE3LTAyLTAyICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIENvcnJlY3QgbWVtb3J5IGxl
YWsgaW4gTWVkaWFDb25zdHJhaW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTY3NzQ0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMDMzMTQ0ND4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb25zdHJh
aW50SG9sZGVyIHJldHVybnMgYSByZWZlcmVuY2UgdG8gYW4gb2JqZWN0IGNyZWF0ZWQgYnkgb3Bl
cmF0b3IgbmV3LiBXaGVuIHRoZQorICAgICAgICByZXR1cm5lZCB2YWx1ZSBpcyBhc3NpZ25lZCBv
ciBzdG9yZWQgaW4gVmVjdG9yIG9yIG90aGVyIGNvbnRhaW5lcnMgd2UgbGVhayBtZW1vcnkuCisg
ICAgICAgIEluc3RlYWQsIHRoaXMgdmFsdWUgc2hvdWxkIGp1c3QgYmUgcmV0dXJuZWQgYXMgYSBy
ZWd1bGFyIG9iamVjdCBzbyB0aGF0IHRoZSByZXR1cm4KKyAgICAgICAgdmFsdWUgb3B0aW1pemF0
aW9uIGNhbiBtYWtlIHN1cmUgbWVtb3J5IGlzIHByb3Blcmx5IChhbmQgZWZmaWNpZW50bHkpIHVz
ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmg6
CisgICAgICAgIChXZWJDb3JlOjpGbGF0dGVuZWRDb25zdHJhaW50OjpDb25zdHJhaW50SG9sZGVy
OjpjcmVhdGUpOiBSZXR1cm4gYnkgdmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpGbGF0dGVuZWRD
b25zdHJhaW50OjpDb25zdHJhaW50SG9sZGVyOjp+Q29uc3RyYWludEhvbGRlcik6IERvbid0IGF0
dGVtcHQgdG8KKyAgICAgICAgZGVsZXRlIG1lbW9yeSB0aGF0IHdhcyBtb3ZlZCBhd2F5LgorICAg
ICAgICAoV2ViQ29yZTo6RmxhdHRlbmVkQ29uc3RyYWludDo6Q29uc3RyYWludEhvbGRlcjo6Q29u
c3RyYWludEhvbGRlcik6IEFkZCBNb3ZlIGNvbnN0cnVjdG9yLgorCiAyMDE3LTAyLTAyICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIENyYXNoVHJhY2Vy
OiBbVVNFUl0gY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50IGF0IGNvbS5hcHBsZS5XZWJDb3Jl
OiBXZWJDb3JlOjpVUkw6Omhvc3QgY29uc3QgKyA5CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50cy5oCShyZXZpc2lv
biAyMTE2MTQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNv
bnN0cmFpbnRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTcxMywzMSArNzEzLDU3IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgY2xhc3MgQ29uc3RyYWludEhvbGRlciB7CiAgICAgcHVibGljOgotICAg
ICAgICBzdGF0aWMgQ29uc3RyYWludEhvbGRlciYgY3JlYXRlKGNvbnN0IE1lZGlhQ29uc3RyYWlu
dCYgdmFsdWUpIHsgcmV0dXJuICpuZXcgQ29uc3RyYWludEhvbGRlcih2YWx1ZSk7IH0KKyAgICAg
ICAgc3RhdGljIENvbnN0cmFpbnRIb2xkZXIgY3JlYXRlKGNvbnN0IE1lZGlhQ29uc3RyYWludCYg
dmFsdWUpIHsgcmV0dXJuIENvbnN0cmFpbnRIb2xkZXIodmFsdWUpOyB9CiAKICAgICAgICAgfkNv
bnN0cmFpbnRIb2xkZXIoKQogICAgICAgICB7Ci0gICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBl
KCkpIHsKKyAgICAgICAgICAgIGlmIChtX3ZhbHVlLmFzUmF3KSB7CisgICAgICAgICAgICAgICAg
c3dpdGNoIChkYXRhVHlwZSgpKSB7CisgICAgICAgICAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFp
bnQ6OkRhdGFUeXBlOjpJbnRlZ2VyOgorICAgICAgICAgICAgICAgICAgICBkZWxldGUgbV92YWx1
ZS5hc0ludGVnZXI7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
IGNhc2UgTWVkaWFDb25zdHJhaW50OjpEYXRhVHlwZTo6RG91YmxlOgorICAgICAgICAgICAgICAg
ICAgICBkZWxldGUgbV92YWx1ZS5hc0RvdWJsZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnQ6OkRhdGFUeXBlOjpCb29sZWFu
OgorICAgICAgICAgICAgICAgICAgICBkZWxldGUgbV92YWx1ZS5hc0Jvb2xlYW47CisgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50
OjpEYXRhVHlwZTo6U3RyaW5nOgorICAgICAgICAgICAgICAgICAgICBkZWxldGUgbV92YWx1ZS5h
c1N0cmluZzsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2Fz
ZSBNZWRpYUNvbnN0cmFpbnQ6OkRhdGFUeXBlOjpOb25lOgorICAgICAgICAgICAgICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgfQorI2lmbmRlZiBOREVCVUcKKyAgICAgICAgICAgIG1f
dmFsdWUuYXNSYXcgPSByZWludGVycHJldF9jYXN0PE1lZGlhQ29uc3RyYWludCo+KDB4YmJhZGJl
ZWYpOworI2VuZGlmCisgICAgICAgIH0KKworICAgICAgICBDb25zdHJhaW50SG9sZGVyKENvbnN0
cmFpbnRIb2xkZXImJiBvdGhlcikKKyAgICAgICAgeworICAgICAgICAgICAgc3dpdGNoIChvdGhl
ci5kYXRhVHlwZSgpKSB7CiAgICAgICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludDo6RGF0YVR5
cGU6OkludGVnZXI6Ci0gICAgICAgICAgICAgICAgZGVsZXRlIG1fdmFsdWUuYXNJbnRlZ2VyOwor
ICAgICAgICAgICAgICAgIG1fdmFsdWUuYXNJbnRlZ2VyID0gV1RGTW92ZShvdGhlci5tX3ZhbHVl
LmFzSW50ZWdlcik7CisgICAgICAgICAgICAgICAgb3RoZXIubV92YWx1ZS5hc0ludGVnZXIgPSBu
dWxscHRyOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBNZWRpYUNv
bnN0cmFpbnQ6OkRhdGFUeXBlOjpEb3VibGU6Ci0gICAgICAgICAgICAgICAgZGVsZXRlIG1fdmFs
dWUuYXNEb3VibGU7CisgICAgICAgICAgICAgICAgbV92YWx1ZS5hc0RvdWJsZSA9IFdURk1vdmUo
b3RoZXIubV92YWx1ZS5hc0RvdWJsZSk7CisgICAgICAgICAgICAgICAgb3RoZXIubV92YWx1ZS5h
c0RvdWJsZSA9IG51bGxwdHI7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBj
YXNlIE1lZGlhQ29uc3RyYWludDo6RGF0YVR5cGU6OkJvb2xlYW46Ci0gICAgICAgICAgICAgICAg
ZGVsZXRlIG1fdmFsdWUuYXNCb29sZWFuOworICAgICAgICAgICAgICAgIG1fdmFsdWUuYXNCb29s
ZWFuID0gV1RGTW92ZShvdGhlci5tX3ZhbHVlLmFzQm9vbGVhbik7CisgICAgICAgICAgICAgICAg
b3RoZXIubV92YWx1ZS5hc0Jvb2xlYW4gPSBudWxscHRyOwogICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnQ6OkRhdGFUeXBlOjpTdHJpbmc6Ci0g
ICAgICAgICAgICAgICAgZGVsZXRlIG1fdmFsdWUuYXNTdHJpbmc7CisgICAgICAgICAgICAgICAg
bV92YWx1ZS5hc1N0cmluZyA9IFdURk1vdmUob3RoZXIubV92YWx1ZS5hc1N0cmluZyk7CisgICAg
ICAgICAgICAgICAgb3RoZXIubV92YWx1ZS5hc1N0cmluZyA9IG51bGxwdHI7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludDo6RGF0YVR5cGU6
Ok5vbmU6CiAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0KLSNpZm5kZWYgTkRFQlVHCi0gICAgICAgICAg
ICBtX3ZhbHVlLmFzUmF3ID0gcmVpbnRlcnByZXRfY2FzdDxNZWRpYUNvbnN0cmFpbnQqPigweGJi
YWRiZWVmKTsKLSNlbmRpZgogICAgICAgICB9CiAKICAgICAgICAgTWVkaWFDb25zdHJhaW50JiBj
b25zdHJhaW50KCkgY29uc3QgeyByZXR1cm4gKm1fdmFsdWUuYXNSYXc7IH0K
</data>
<flag name="review"
          id="322363"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>