<?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>48416</bug_id>
          
          <creation_ts>2010-10-27 04:53:28 -0700</creation_ts>
          <short_desc>IDBFactoryBackend&apos;s reference to IDBDatabaseBackend should be weak</short_desc>
          <delta_ts>2010-11-05 07:12:19 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Jeremy Orlow">jorlow</reporter>
          <assigned_to name="Jeremy Orlow">jorlow</assigned_to>
          <cc>andreip</cc>
    
    <cc>hans</cc>
    
    <cc>steveblock</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>300127</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-10-27 04:53:28 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300129</commentid>
    <comment_count>1</comment_count>
      <attachid>72011</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-10-27 04:56:52 -0700</bug_when>
    <thetext>Created attachment 72011
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300157</commentid>
    <comment_count>2</comment_count>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2010-10-27 05:54:55 -0700</bug_when>
    <thetext>LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302783</commentid>
    <comment_count>3</comment_count>
      <attachid>72011</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-11-01 10:58:18 -0700</bug_when>
    <thetext>Comment on attachment 72011
patch

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

&gt; WebCore/storage/IDBDatabaseBackendImpl.h:93
&gt; +    RefPtr&lt;IDBFactoryBackendImpl&gt; m_factory;

You mention that the factory has the lifetime of the application. If so, why do we need to take a ref to it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303300</commentid>
    <comment_count>4</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-11-02 04:19:26 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 72011 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=72011&amp;action=review
&gt; 
&gt; &gt; WebCore/storage/IDBDatabaseBackendImpl.h:93
&gt; &gt; +    RefPtr&lt;IDBFactoryBackendImpl&gt; m_factory;
&gt; 
&gt; You mention that the factory has the lifetime of the application. If so, why do we need to take a ref to it?

The other objects are ref counted and held by javascript.  Are we guaranteed that a GC will happen and the GC will catch _all_ references before the page group goes away?

Is there any reason to do this either?  Given that the factory is a pretty light weight object (since it only has weak references) there seems like no advantage and big disadvantages (possible security bugs) for changing this behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303329</commentid>
    <comment_count>5</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-11-02 06:11:30 -0700</bug_when>
    <thetext>&gt; The other objects are ref counted and held by javascript.  Are we guaranteed that a GC will happen and
&gt; the GC will catch _all_ references before the page group goes away?
So you mean the factory has page lifetime? If so, that makes sense. Perhaps you could update the comment to make that clear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303488</commentid>
    <comment_count>6</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-11-02 11:05:15 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; &gt; The other objects are ref counted and held by javascript.  Are we guaranteed that a GC will happen and
&gt; &gt; the GC will catch _all_ references before the page group goes away?
&gt; So you mean the factory has page lifetime? If so, that makes sense. Perhaps you could update the comment to make that clear.

No, it&apos;s page group lifetime which is a superset of the pages&apos; lifetime.  But pages will own IDBDatabase objects.  And once the last one goes away, the IDBDatabaseBackendImpl will go to 0 which will cause the IDBFactory to clear its pointer.

Basically the case where IDBFactory could possibly go away first is on shutdown where it&apos;s not clear whether all the pages&apos; resources (especially those owned by JavaScript) will be killed before the page group goes away.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305229</commentid>
    <comment_count>7</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-11-05 04:58:13 -0700</bug_when>
    <thetext>I can has r+?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305244</commentid>
    <comment_count>8</comment_count>
      <attachid>72011</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-11-05 06:38:05 -0700</bug_when>
    <thetext>Comment on attachment 72011
patch

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

r=me

&gt;&gt;&gt; WebCore/storage/IDBDatabaseBackendImpl.h:93
&gt;&gt;&gt; +    RefPtr&lt;IDBFactoryBackendImpl&gt; m_factory;
&gt;&gt; 
&gt;&gt; You mention that the factory has the lifetime of the application. If so, why do we need to take a ref to it?
&gt; 
&gt; The other objects are ref counted and held by javascript.  Are we guaranteed that a GC will happen and the GC will catch _all_ references before the page group goes away?
&gt; 
&gt; Is there any reason to do this either?  Given that the factory is a pretty light weight object (since it only has weak references) there seems like no advantage and big disadvantages (possible security bugs) for changing this behavior.

OK, makes sense. I still think the comment could be more clear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305250</commentid>
    <comment_count>9</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-11-05 06:57:45 -0700</bug_when>
    <thetext>Committed r71411: &lt;http://trac.webkit.org/changeset/71411&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305260</commentid>
    <comment_count>10</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-11-05 07:12:19 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 72011 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=72011&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt;&gt;&gt; WebCore/storage/IDBDatabaseBackendImpl.h:93
&gt; &gt;&gt;&gt; +    RefPtr&lt;IDBFactoryBackendImpl&gt; m_factory;
&gt; &gt;&gt; 
&gt; &gt;&gt; You mention that the factory has the lifetime of the application. If so, why do we need to take a ref to it?
&gt; &gt; 
&gt; &gt; The other objects are ref counted and held by javascript.  Are we guaranteed that a GC will happen and the GC will catch _all_ references before the page group goes away?
&gt; &gt; 
&gt; &gt; Is there any reason to do this either?  Given that the factory is a pretty light weight object (since it only has weak references) there seems like no advantage and big disadvantages (possible security bugs) for changing this behavior.
&gt; 
&gt; OK, makes sense. I still think the comment could be more clear.

I added a comment.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72011</attachid>
            <date>2010-10-27 04:56:52 -0700</date>
            <delta_ts>2010-11-05 06:38:05 -0700</delta_ts>
            <desc>patch</desc>
            <filename>a</filename>
            <type>text/plain</type>
            <size>8308</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MTBkMjJkMC4uMzc2ZTg5MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTIsNiArMiwyOCBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgogCisgICAgICAgIElEQkZhY3RvcnlCYWNrZW5kJ3MgcmVmZXJlbmNlIHRv
IElEQkRhdGFiYXNlQmFja2VuZCBzaG91bGQgYmUgd2VhaworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg0MTYKKworICAgICAgICBUaGUgZmFjdG9yeSdz
IGxpZmV0aW1lIGlzIHRoYXQgb2YgdGhlIGFwcGxpY2F0aW9uLCBzbyB3aXRob3V0IG1ha2luZwor
ICAgICAgICB0aGlzIHdlYWssIElEQkRhdGFiYXNlQmFja2VuZCdzIHdpbGwgbmV2ZXIgYmUgY2xv
c2VkIHVudGlsIHRoZSBhcHAKKyAgICAgICAgdGVybWluYXRlcy4KKworICAgICAgICAqIHN0b3Jh
Z2UvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRh
YmFzZUJhY2tlbmRJbXBsOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6On5JREJEYXRhYmFzZUJhY2tlbmRJbXBsKToKKyAg
ICAgICAgKiBzdG9yYWdlL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6OmNyZWF0ZSk6CisgICAgICAgICogc3RvcmFnZS9J
REJGYWN0b3J5QmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRmFjdG9yeUJh
Y2tlbmRJbXBsOjpyZW1vdmVJREJEYXRhYmFzZUJhY2tlbmQpOgorICAgICAgICAoV2ViQ29yZTo6
SURCRmFjdG9yeUJhY2tlbmRJbXBsOjpyZW1vdmVTUUxpdGVEYXRhYmFzZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJGYWN0b3J5QmFja2VuZEltcGw6Om9wZW4pOgorICAgICAgICAqIHN0b3JhZ2Uv
SURCRmFjdG9yeUJhY2tlbmRJbXBsLmg6CisKKzIwMTAtMTAtMjcgIEplcmVteSBPcmxvdyAgPGpv
cmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKICAgICAgICAgSURCT2JqZWN0U3RvcmVCYWNrZW5kIGFuZCBJREJJbmRleEJhY2tlbmQgc2hv
dWxkIG5vdCBkZXBlbmQgb24gSURCRGF0YWJhc2VCYWNrZW5kCiAgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODQxMAogCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3N0b3JhZ2UvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAgYi9XZWJDb3JlL3N0b3JhZ2UvSURC
RGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKaW5kZXggM2JlZThmZS4uMTU2YTIxZCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCisrKyBiL1dlYkNv
cmUvc3RvcmFnZS9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcApAQCAtMzEsNiArMzEsNyBAQAog
I2luY2x1ZGUgIkNyb3NzVGhyZWFkVGFzay5oIgogI2luY2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIK
ICNpbmNsdWRlICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5oIgorI2luY2x1ZGUgIklEQkZhY3RvcnlC
YWNrZW5kSW1wbC5oIgogI2luY2x1ZGUgIklEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuaCIKICNp
bmNsdWRlICJJREJTUUxpdGVEYXRhYmFzZS5oIgogI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uQmFj
a2VuZEludGVyZmFjZS5oIgpAQCAtODgsMTIgKzg5LDE0IEBAIHN0YXRpYyBib29sIHNldE1ldGFE
YXRhKFNRTGl0ZURhdGFiYXNlJiBzcWxpdGVEYXRhYmFzZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUlEQkRhdGFiYXNlQmFja2VuZEltcGw6OklEQkRh
dGFiYXNlQmFja2VuZEltcGwoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGRlc2Ny
aXB0aW9uLCBJREJTUUxpdGVEYXRhYmFzZSogc3FsaXRlRGF0YWJhc2UsIElEQlRyYW5zYWN0aW9u
Q29vcmRpbmF0b3IqIGNvb3JkaW5hdG9yKQorSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6SURCRGF0
YWJhc2VCYWNrZW5kSW1wbChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3Jp
cHRpb24sIElEQlNRTGl0ZURhdGFiYXNlKiBzcWxpdGVEYXRhYmFzZSwgSURCVHJhbnNhY3Rpb25D
b29yZGluYXRvciogY29vcmRpbmF0b3IsIElEQkZhY3RvcnlCYWNrZW5kSW1wbCogZmFjdG9yeSwg
Y29uc3QgU3RyaW5nJiB1bmlxdWVJZGVudGlmaWVyKQogICAgIDogbV9zcWxpdGVEYXRhYmFzZShz
cWxpdGVEYXRhYmFzZSkKICAgICAsIG1faWQoSW52YWxpZElkKQogICAgICwgbV9uYW1lKG5hbWUp
CiAgICAgLCBtX2Rlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKQogICAgICwgbV92ZXJzaW9uKCIiKQor
ICAgICwgbV9pZGVudGlmaWVyKHVuaXF1ZUlkZW50aWZpZXIpCisgICAgLCBtX2ZhY3RvcnkoZmFj
dG9yeSkKICAgICAsIG1fdHJhbnNhY3Rpb25Db29yZGluYXRvcihjb29yZGluYXRvcikKIHsKICAg
ICBBU1NFUlQoIW1fbmFtZS5pc051bGwoKSk7CkBAIC0xMDgsNiArMTExLDcgQEAgSURCRGF0YWJh
c2VCYWNrZW5kSW1wbDo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbChjb25zdCBTdHJpbmcmIG5hbWUs
IGNvbnN0IFN0cmluZyYKIAogSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6fklEQkRhdGFiYXNlQmFj
a2VuZEltcGwoKQogeworICAgIG1fZmFjdG9yeS0+cmVtb3ZlSURCRGF0YWJhc2VCYWNrZW5kKG1f
aWRlbnRpZmllcik7CiB9CiAKIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6c2V0RGVzY3Jp
cHRpb24oY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3Rv
cmFnZS9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJh
c2VCYWNrZW5kSW1wbC5oCmluZGV4IDUzZTFhNWYuLjNjZmE3ZjYgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvc3RvcmFnZS9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgKKysrIGIvV2ViQ29yZS9zdG9yYWdl
L0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaApAQCAtMzUsNiArMzUsNyBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK2NsYXNzIElEQkZhY3RvcnlCYWNrZW5kSW1wbDsKIGNsYXNzIElEQk9iamVj
dFN0b3JlQmFja2VuZEltcGw7CiBjbGFzcyBJREJTUUxpdGVEYXRhYmFzZTsKIGNsYXNzIElEQlRy
YW5zYWN0aW9uQ29vcmRpbmF0b3I7CkBAIC00Miw5ICs0Myw5IEBAIGNsYXNzIFNRTGl0ZURhdGFi
YXNlOwogCiBjbGFzcyBJREJEYXRhYmFzZUJhY2tlbmRJbXBsIDogcHVibGljIElEQkRhdGFiYXNl
QmFja2VuZEludGVyZmFjZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SURCRGF0
YWJhc2VCYWNrZW5kSW1wbD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5n
JiBkZXNjcmlwdGlvbiwgSURCU1FMaXRlRGF0YWJhc2UqIGRhdGFiYXNlLCBJREJUcmFuc2FjdGlv
bkNvb3JkaW5hdG9yKiBjb29yZGluYXRvcikKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJEYXRh
YmFzZUJhY2tlbmRJbXBsPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcm
IGRlc2NyaXB0aW9uLCBJREJTUUxpdGVEYXRhYmFzZSogZGF0YWJhc2UsIElEQlRyYW5zYWN0aW9u
Q29vcmRpbmF0b3IqIGNvb3JkaW5hdG9yLCBJREJGYWN0b3J5QmFja2VuZEltcGwqIGZhY3Rvcnks
IGNvbnN0IFN0cmluZyYgdW5pcXVlSWRlbnRpZmllcikKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgSURCRGF0YWJhc2VCYWNrZW5kSW1wbChuYW1lLCBkZXNjcmlwdGlvbiwgZGF0
YWJhc2UsIGNvb3JkaW5hdG9yKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCRGF0
YWJhc2VCYWNrZW5kSW1wbChuYW1lLCBkZXNjcmlwdGlvbiwgZGF0YWJhc2UsIGNvb3JkaW5hdG9y
LCBmYWN0b3J5LCB1bmlxdWVJZGVudGlmaWVyKSk7CiAgICAgfQogICAgIHZpcnR1YWwgfklEQkRh
dGFiYXNlQmFja2VuZEltcGwoKTsKIApAQCAtNjksNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgSURC
VHJhbnNhY3Rpb25Db29yZGluYXRvciogdHJhbnNhY3Rpb25Db29yZGluYXRvcigpIGNvbnN0IHsg
cmV0dXJuIG1fdHJhbnNhY3Rpb25Db29yZGluYXRvci5nZXQoKTsgfQogCiBwcml2YXRlOgotICAg
IElEQkRhdGFiYXNlQmFja2VuZEltcGwoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcm
IGRlc2NyaXB0aW9uLCBJREJTUUxpdGVEYXRhYmFzZSogZGF0YWJhc2UsIElEQlRyYW5zYWN0aW9u
Q29vcmRpbmF0b3IqKTsKKyAgICBJREJEYXRhYmFzZUJhY2tlbmRJbXBsKGNvbnN0IFN0cmluZyYg
bmFtZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgSURCU1FMaXRlRGF0YWJhc2UqIGRhdGFi
YXNlLCBJREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yKiwgSURCRmFjdG9yeUJhY2tlbmRJbXBsKiwg
Y29uc3QgU3RyaW5nJiB1bmlxdWVJZGVudGlmaWVyKTsKIAogICAgIHZvaWQgbG9hZE9iamVjdFN0
b3JlcygpOwogCkBAIC04OCw2ICs4OSw5IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fZGVzY3Jp
cHRpb247CiAgICAgU3RyaW5nIG1fdmVyc2lvbjsKIAorICAgIFN0cmluZyBtX2lkZW50aWZpZXI7
CisgICAgUmVmUHRyPElEQkZhY3RvcnlCYWNrZW5kSW1wbD4gbV9mYWN0b3J5OworCiAgICAgdHlw
ZWRlZiBIYXNoTWFwPFN0cmluZywgUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw+ID4g
T2JqZWN0U3RvcmVNYXA7CiAgICAgT2JqZWN0U3RvcmVNYXAgbV9vYmplY3RTdG9yZXM7CiAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJGYWN0b3J5QmFja2VuZEltcGwuY3BwIGIvV2Vi
Q29yZS9zdG9yYWdlL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5jcHAKaW5kZXggMTkwNWMwYy4uZTRk
MGVlOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5j
cHAKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5jcHAKQEAgLTUy
LDEwICs1MiwxNiBAQCBJREJGYWN0b3J5QmFja2VuZEltcGw6On5JREJGYWN0b3J5QmFja2VuZElt
cGwoKQogewogfQogCi12b2lkIElEQkZhY3RvcnlCYWNrZW5kSW1wbDo6cmVtb3ZlU1FMaXRlRGF0
YWJhc2UoY29uc3QgU3RyaW5nJiBmaWxlUGF0aCkKK3ZvaWQgSURCRmFjdG9yeUJhY2tlbmRJbXBs
OjpyZW1vdmVJREJEYXRhYmFzZUJhY2tlbmQoY29uc3QgU3RyaW5nJiB1bmlxdWVJZGVudGlmaWVy
KQogewotICAgIEFTU0VSVChtX3NxbGl0ZURhdGFiYXNlTWFwLmNvbnRhaW5zKGZpbGVQYXRoKSk7
Ci0gICAgbV9zcWxpdGVEYXRhYmFzZU1hcC5yZW1vdmUoZmlsZVBhdGgpOworICAgIEFTU0VSVCht
X2RhdGFiYXNlQmFja2VuZE1hcC5jb250YWlucyh1bmlxdWVJZGVudGlmaWVyKSk7CisgICAgbV9k
YXRhYmFzZUJhY2tlbmRNYXAucmVtb3ZlKHVuaXF1ZUlkZW50aWZpZXIpOworfQorCit2b2lkIElE
QkZhY3RvcnlCYWNrZW5kSW1wbDo6cmVtb3ZlU1FMaXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiB1
bmlxdWVJZGVudGlmaWVyKQoreworICAgIEFTU0VSVChtX3NxbGl0ZURhdGFiYXNlTWFwLmNvbnRh
aW5zKHVuaXF1ZUlkZW50aWZpZXIpKTsKKyAgICBtX3NxbGl0ZURhdGFiYXNlTWFwLnJlbW92ZSh1
bmlxdWVJZGVudGlmaWVyKTsKIH0KIAogc3RhdGljIFBhc3NSZWZQdHI8SURCU1FMaXRlRGF0YWJh
c2U+IG9wZW5TUUxpdGVEYXRhYmFzZShTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4sIGNv
bnN0IFN0cmluZyYgcGF0aEJhc2UsIGludDY0X3QgbWF4aW11bVNpemUsIGNvbnN0IFN0cmluZyYg
ZmlsZUlkZW50aWZpZXIsIElEQkZhY3RvcnlCYWNrZW5kSW1wbCogZmFjdG9yeSkKQEAgLTEyNCw3
ICsxMzAsNyBAQCB2b2lkIElEQkZhY3RvcnlCYWNrZW5kSW1wbDo6b3Blbihjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sCiAgICAgaWYgKGl0ICE9IG1fZGF0YWJh
c2VCYWNrZW5kTWFwLmVuZCgpKSB7CiAgICAgICAgIGlmICghZGVzY3JpcHRpb24uaXNOdWxsKCkp
CiAgICAgICAgICAgICBpdC0+c2Vjb25kLT5zZXREZXNjcmlwdGlvbihkZXNjcmlwdGlvbik7IC8v
IFRoZSBkZXNjcmlwdGlvbiBtYXkgaGF2ZSBjaGFuZ2VkLgotICAgICAgICBjYWxsYmFja3MtPm9u
U3VjY2VzcyhpdC0+c2Vjb25kLmdldCgpKTsKKyAgICAgICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3Mo
aXQtPnNlY29uZCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE0NCw5ICsxNTAsOSBA
QCB2b2lkIElEQkZhY3RvcnlCYWNrZW5kSW1wbDo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNv
bnN0IFN0cmluZyYgZGVzY3JpcHRpb24sCiAgICAgICAgIG1fc3FsaXRlRGF0YWJhc2VNYXAuc2V0
KGZpbGVJZGVudGlmaWVyLCBzcWxpdGVEYXRhYmFzZS5nZXQoKSk7CiAgICAgfQogCi0gICAgUmVm
UHRyPElEQkRhdGFiYXNlQmFja2VuZEltcGw+IGRhdGFiYXNlQmFja2VuZCA9IElEQkRhdGFiYXNl
QmFja2VuZEltcGw6OmNyZWF0ZShuYW1lLCBkZXNjcmlwdGlvbiwgc3FsaXRlRGF0YWJhc2UuZ2V0
KCksIG1fdHJhbnNhY3Rpb25Db29yZGluYXRvci5nZXQoKSk7CisgICAgUmVmUHRyPElEQkRhdGFi
YXNlQmFja2VuZEltcGw+IGRhdGFiYXNlQmFja2VuZCA9IElEQkRhdGFiYXNlQmFja2VuZEltcGw6
OmNyZWF0ZShuYW1lLCBkZXNjcmlwdGlvbiwgc3FsaXRlRGF0YWJhc2UuZ2V0KCksIG1fdHJhbnNh
Y3Rpb25Db29yZGluYXRvci5nZXQoKSwgdGhpcywgdW5pcXVlSWRlbnRpZmllcik7CiAgICAgY2Fs
bGJhY2tzLT5vblN1Y2Nlc3MoZGF0YWJhc2VCYWNrZW5kLmdldCgpKTsKLSAgICBtX2RhdGFiYXNl
QmFja2VuZE1hcC5zZXQodW5pcXVlSWRlbnRpZmllciwgZGF0YWJhc2VCYWNrZW5kLnJlbGVhc2Uo
KSk7CisgICAgbV9kYXRhYmFzZUJhY2tlbmRNYXAuc2V0KHVuaXF1ZUlkZW50aWZpZXIsIGRhdGFi
YXNlQmFja2VuZC5nZXQoKSk7CiB9CiAKIFN0cmluZyBJREJGYWN0b3J5QmFja2VuZEltcGw6OmRh
dGFiYXNlRmlsZU5hbWUoU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5oIGIvV2ViQ29yZS9zdG9y
YWdlL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5oCmluZGV4IDM4MWM0MDIuLmQ2MThmZTIgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJGYWN0b3J5QmFja2VuZEltcGwuaAorKysgYi9XZWJD
b3JlL3N0b3JhZ2UvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmgKQEAgLTUwLDggKzUwLDkgQEAgcHVi
bGljOgogICAgIH0KICAgICB2aXJ0dWFsIH5JREJGYWN0b3J5QmFja2VuZEltcGwoKTsKIAotICAg
IC8vIElEQlNRTGl0ZURhdGFiYXNlJ3MgbGlmZXRpbWUgbWF5IGJlIHNob3J0ZXIgdGhhbiBvdXJz
LCBzbyB3ZSBuZWVkIG5vdGlmaWNhdGlvbiB3aGVuIGl0IGRpZXMuCi0gICAgdm9pZCByZW1vdmVT
UUxpdGVEYXRhYmFzZShjb25zdCBTdHJpbmcmIGZpbGVQYXRoKTsKKyAgICAvLyBOb3RpZmljYXRp
b25zIGZyb20gd2VhayBwb2ludGVycy4KKyAgICB2b2lkIHJlbW92ZUlEQkRhdGFiYXNlQmFja2Vu
ZChjb25zdCBTdHJpbmcmIHVuaXF1ZUlkZW50aWZpZXIpOworICAgIHZvaWQgcmVtb3ZlU1FMaXRl
RGF0YWJhc2UoY29uc3QgU3RyaW5nJiB1bmlxdWVJZGVudGlmaWVyKTsKIAogICAgIHZpcnR1YWwg
dm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwg
UGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgRnJh
bWUqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIsIGludDY0X3QgbWF4aW11bVNpemUpOwogCkBAIC02
MCw4ICs2MSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSURCRmFjdG9yeUJhY2tlbmRJbXBs
KCk7CiAKLSAgICAvLyBGSVhNRTogSnVzdCBob2xkIGEgd2VhayBwb2ludGVyLgotICAgIHR5cGVk
ZWYgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbXBsPiA+IElEQkRh
dGFiYXNlQmFja2VuZE1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBJREJEYXRhYmFz
ZUJhY2tlbmRJbXBsKj4gSURCRGF0YWJhc2VCYWNrZW5kTWFwOwogICAgIElEQkRhdGFiYXNlQmFj
a2VuZE1hcCBtX2RhdGFiYXNlQmFja2VuZE1hcDsKIAogICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJp
bmcsIElEQlNRTGl0ZURhdGFiYXNlKj4gU1FMaXRlRGF0YWJhc2VNYXA7Cg==
</data>
<flag name="review"
          id="62172"
          type_id="1"
          status="+"
          setter="steveblock"
    />
          </attachment>
      

    </bug>

</bugzilla>