<?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>123313</bug_id>
          
          <creation_ts>2013-10-24 19:29:40 -0700</creation_ts>
          <short_desc>DatabaseManager&apos;s ProposedDatabases need to be thread-safe</short_desc>
          <delta_ts>2013-10-25 15:04:49 -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>DOM</component>
          <version>528+ (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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>ap</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>943413</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-10-24 19:29:40 -0700</bug_when>
    <thetext>We&apos;re seeing some recent crashes in database-related code, e.g.

http://build.webkit.org/results/Apple%20MountainLion%20Debug%20WK2%20(Tests)/r157967%20(13656)/http/tests/security/cross-origin-worker-websql-allowed-crash-log.txt

Thread 30 Crashed:: WebCore: Worker
0   com.apple.JavaScriptCore      	0x000000010d280eba WTFCrash + 42 (Assertions.cpp:342)
1   com.apple.WebCore             	0x000000010e5b58e8 WebCore::DatabaseManager::ProposedDatabase::ProposedDatabase(WebCore::DatabaseManager&amp;, WebCore::SecurityOrigin*, WTF::String const&amp;, WTF::String const&amp;, unsigned long) + 248 (DatabaseManager.cpp:58)
2   com.apple.WebCore             	0x000000010e5b57dd WebCore::DatabaseManager::ProposedDatabase::ProposedDatabase(WebCore::DatabaseManager&amp;, WebCore::SecurityOrigin*, WTF::String const&amp;, WTF::String const&amp;, unsigned long) + 61 (DatabaseManager.cpp:60)
3   com.apple.WebCore             	0x000000010e5b641d WebCore::DatabaseManager::openDatabaseBackend(WebCore::ScriptExecutionContext*, WebCore::DatabaseType, WTF::String const&amp;, WTF::String const&amp;, WTF::String const&amp;, unsigned long, bool, WebCore::DatabaseError&amp;, WTF::String&amp;) + 765 (DatabaseManager.cpp:268)
4   com.apple.WebCore             	0x000000010e5b6929 WebCore::DatabaseManager::openDatabase(WebCore::ScriptExecutionContext*, WTF::String const&amp;, WTF::String const&amp;, WTF::String const&amp;, unsigned long, WTF::PassRefPtr&lt;WebCore::DatabaseCallback&gt;, WebCore::DatabaseError&amp;) + 297 (DatabaseManager.cpp:309)
5   com.apple.WebCore             	0x000000010fc48d78 WebCore::WorkerGlobalScopeWebDatabase::openDatabase(WebCore::WorkerGlobalScope*, WTF::String const&amp;, WTF::String const&amp;, WTF::String const&amp;, unsigned long, WTF::PassRefPtr&lt;WebCore::DatabaseCallback&gt;, int&amp;) + 328 (WorkerGlobalScopeWebDatabase.cpp:49)
6   com.apple.WebCore             	0x000000010f29758d WebCore::jsWorkerGlobalScopePrototypeFunctionOpenDatabase(JSC::ExecState*) + 1629 (JSWorkerGlobalScope.cpp:1167)
7   ???                           	0x00005d6b24a15e25 0 + 102714757439013
8   com.apple.JavaScriptCore      	0x000000010cfb6267 JSC::JITCode::execute(JSC::JSStack*, JSC::ExecState*, JSC::VM*) + 71 (JITCode.cpp:46)
9   com.apple.JavaScriptCore      	0x000000010cf9a01f JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 1455 (Interpreter.cpp:958)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943597</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-10-25 08:41:10 -0700</bug_when>
    <thetext>Two more crashes overnight:
http://build.webkit.org/results/Apple%20MountainLion%20Debug%20WK2%20(Tests)/r157999%20(13669)/http/tests/security/cross-origin-worker-websql-allowed-crash-log.txt
http://build.webkit.org/results/Apple%20MountainLion%20Debug%20WK2%20(Tests)/r157998%20(13668)/http/tests/security/cross-origin-worker-websql-allowed-crash-log.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943634</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-10-25 09:50:26 -0700</bug_when>
    <thetext>Looks like the ProposedDatabases need to be multi-thread safe as well due to Worker threads.  Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943651</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-10-25 10:36:49 -0700</bug_when>
    <thetext>&lt;rdar://problem/15320813&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943699</commentid>
    <comment_count>4</comment_count>
      <attachid>215199</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-10-25 12:45:13 -0700</bug_when>
    <thetext>Created attachment 215199
the patch.

Still running layout tests on this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943732</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-10-25 13:42:28 -0700</bug_when>
    <thetext>Layout tests look ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943750</commentid>
    <comment_count>6</comment_count>
      <attachid>215199</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-10-25 14:22:23 -0700</bug_when>
    <thetext>Comment on attachment 215199
the patch.

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

&gt; Source/WebCore/Modules/webdatabase/DatabaseManager.cpp:257
&gt; +                addProposedDatabase(&amp;proposedDb);
&gt;                  databaseContext-&gt;databaseExceededQuota(name,
&gt;                      DatabaseDetails(name.isolatedCopy(), displayName.isolatedCopy(), estimatedSize, 0));
&gt; +                removeProposedDatabase(&amp;proposedDb);

Let&apos;s move add/remove to the ProposedDatabase constructor/destructor, to make them automatic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943781</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-10-25 15:04:49 -0700</bug_when>
    <thetext>Thanks for the review.  The add and remove calls have been moved into ProposedDatabase&apos;s constructor/destructor.

Landed in r158058: &lt;http://trac.webkit.org/r158058&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215199</attachid>
            <date>2013-10-25 12:45:13 -0700</date>
            <delta_ts>2013-10-25 14:23:39 -0700</delta_ts>
            <desc>the patch.</desc>
            <filename>bug-123313.patch</filename>
            <type>text/plain</type>
            <size>9619</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1ODAzMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDEzLTEwLTI1ICBNYXJrIExh
bSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBEYXRhYmFzZU1hbmFnZXIncyBQcm9w
b3NlZERhdGFiYXNlcyBuZWVkIHRvIGJlIHRocmVhZC1zYWZlLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMzEzLgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4KKworICAgICAgICAq
IE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGFiYXNlTWFuYWdlcjo6RGF0YWJhc2VNYW5hZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGFiYXNlTWFuYWdlcjo6ZXhpc3RpbmdEYXRhYmFzZUNvbnRleHRGb3IpOgorICAgICAgICAo
V2ViQ29yZTo6RGF0YWJhc2VNYW5hZ2VyOjpyZWdpc3RlckRhdGFiYXNlQ29udGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRhYmFzZU1hbmFnZXI6OnVucmVnaXN0ZXJEYXRhYmFzZUNvbnRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VNYW5hZ2VyOjpkaWRDb25zdHJ1Y3REYXRhYmFz
ZUNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VNYW5hZ2VyOjpkaWREZXN0cnVj
dERhdGFiYXNlQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZU1hbmFnZXI6Om9w
ZW5EYXRhYmFzZUJhY2tlbmQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VNYW5hZ2VyOjph
ZGRQcm9wb3NlZERhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlTWFuYWdlcjo6
cmVtb3ZlUHJvcG9zZWREYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZU1hbmFn
ZXI6OmZ1bGxQYXRoRm9yRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VNYW5h
Z2VyOjpkZXRhaWxzRm9yTmFtZUFuZE9yaWdpbik6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRh
YmFzZS9EYXRhYmFzZU1hbmFnZXIuaDoKKwogMjAxMy0xMC0yNSAgSmFja3kgSmlhbmcgIDx6aGFq
aWFuZ0BibGFja2JlcnJ5LmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gQnJvd3NlciBjcmFz
aGVkIGF0IFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0OjphZGREcmF3TGluZUZvclRleHQoKSB3aGVu
IHRyeWluZyB0byB1cGxvYWQgYSB2aWRlbyB0byB5b3V0dWJlCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3BwCShy
ZXZpc2lvbiAxNTgwMjYpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlTWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDIxICs0OSw2IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotRGF0YWJhc2VNYW5hZ2VyOjpQcm9wb3NlZERhdGFiYXNlOjpQ
cm9wb3NlZERhdGFiYXNlKERhdGFiYXNlTWFuYWdlciYgbWFuYWdlciwKLSAgICBTZWN1cml0eU9y
aWdpbiogb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5h
bWUsIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6ZSkKLSAgICA6IG1fbWFuYWdlcihtYW5hZ2Vy
KQotICAgICwgbV9vcmlnaW4ob3JpZ2luLT5pc29sYXRlZENvcHkoKSkKLSAgICAsIG1fZGV0YWls
cyhuYW1lLmlzb2xhdGVkQ29weSgpLCBkaXNwbGF5TmFtZS5pc29sYXRlZENvcHkoKSwgZXN0aW1h
dGVkU2l6ZSwgMCkKLXsKLSAgICBBU1NFUlQoIW1fbWFuYWdlci5tX3Byb3Bvc2VkRGF0YWJhc2Up
OwotICAgIG1fbWFuYWdlci5tX3Byb3Bvc2VkRGF0YWJhc2UgPSB0aGlzOwotfQotCi1EYXRhYmFz
ZU1hbmFnZXI6OlByb3Bvc2VkRGF0YWJhc2U6On5Qcm9wb3NlZERhdGFiYXNlKCkKLXsKLSAgICBt
X21hbmFnZXIubV9wcm9wb3NlZERhdGFiYXNlID0gMDsKLX0KLQogRGF0YWJhc2VNYW5hZ2VyJiBE
YXRhYmFzZU1hbmFnZXI6Om1hbmFnZXIoKQogewogICAgIHN0YXRpYyBEYXRhYmFzZU1hbmFnZXIq
IGRiTWFuYWdlciA9IDA7CkBAIC04Myw3ICs2OCw2IEBAIERhdGFiYXNlTWFuYWdlcjo6RGF0YWJh
c2VNYW5hZ2VyKCkKICAgICAsIG1fZGF0YWJhc2VDb250ZXh0UmVnaXN0ZXJlZENvdW50KDApCiAg
ICAgLCBtX2RhdGFiYXNlQ29udGV4dEluc3RhbmNlQ291bnQoMCkKICNlbmRpZgotICAgICwgbV9w
cm9wb3NlZERhdGFiYXNlKDApCiB7CiAgICAgQVNTRVJUKG1fc2VydmVyKTsgLy8gV2Ugc2hvdWxk
IGFsd2F5cyBoYXZlIGEgc2VydmVyIHRvIHdvcmsgd2l0aC4KIH0KQEAgLTE0NCw3ICsxMjgsNyBA
QCBwcml2YXRlOgogCiBQYXNzUmVmUHRyPERhdGFiYXNlQ29udGV4dD4gRGF0YWJhc2VNYW5hZ2Vy
OjpleGlzdGluZ0RhdGFiYXNlQ29udGV4dEZvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0KQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2NvbnRleHRNYXBMb2NrKTsKKyAgICBN
dXRleExvY2tlciBsb2NrZXIobV9sb2NrKTsKIAogICAgIEFTU0VSVChtX2RhdGFiYXNlQ29udGV4
dFJlZ2lzdGVyZWRDb3VudCA+PSAwKTsKICAgICBBU1NFUlQobV9kYXRhYmFzZUNvbnRleHRJbnN0
YW5jZUNvdW50ID49IDApOwpAQCAtMTc1LDcgKzE1OSw3IEBAIFBhc3NSZWZQdHI8RGF0YWJhc2VD
b250ZXh0PiBEYXRhYmFzZU1hbmEKIAogdm9pZCBEYXRhYmFzZU1hbmFnZXI6OnJlZ2lzdGVyRGF0
YWJhc2VDb250ZXh0KERhdGFiYXNlQ29udGV4dCogZGF0YWJhc2VDb250ZXh0KQogewotICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX2NvbnRleHRNYXBMb2NrKTsKKyAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9sb2NrKTsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0gZGF0YWJh
c2VDb250ZXh0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgbV9jb250ZXh0TWFwLnNl
dChjb250ZXh0LCBkYXRhYmFzZUNvbnRleHQpOwogI2lmICFBU1NFUlRfRElTQUJMRUQKQEAgLTE4
NSw3ICsxNjksNyBAQCB2b2lkIERhdGFiYXNlTWFuYWdlcjo6cmVnaXN0ZXJEYXRhYmFzZUNvCiAK
IHZvaWQgRGF0YWJhc2VNYW5hZ2VyOjp1bnJlZ2lzdGVyRGF0YWJhc2VDb250ZXh0KERhdGFiYXNl
Q29udGV4dCogZGF0YWJhc2VDb250ZXh0KQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2Nv
bnRleHRNYXBMb2NrKTsKKyAgICBNdXRleExvY2tlciBsb2NrZXIobV9sb2NrKTsKICAgICBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0gZGF0YWJhc2VDb250ZXh0LT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCk7CiAgICAgQVNTRVJUKG1fY29udGV4dE1hcC5nZXQoY29udGV4dCkpOwog
I2lmICFBU1NFUlRfRElTQUJMRUQKQEAgLTE5NywxMyArMTgxLDEzIEBAIHZvaWQgRGF0YWJhc2VN
YW5hZ2VyOjp1bnJlZ2lzdGVyRGF0YWJhc2UKICNpZiAhQVNTRVJUX0RJU0FCTEVECiB2b2lkIERh
dGFiYXNlTWFuYWdlcjo6ZGlkQ29uc3RydWN0RGF0YWJhc2VDb250ZXh0KCkKIHsKLSAgICBNdXRl
eExvY2tlciBsb2NrKG1fY29udGV4dE1hcExvY2spOworICAgIE11dGV4TG9ja2VyIGxvY2sobV9s
b2NrKTsKICAgICBtX2RhdGFiYXNlQ29udGV4dEluc3RhbmNlQ291bnQrKzsKIH0KIAogdm9pZCBE
YXRhYmFzZU1hbmFnZXI6OmRpZERlc3RydWN0RGF0YWJhc2VDb250ZXh0KCkKIHsKLSAgICBNdXRl
eExvY2tlciBsb2NrKG1fY29udGV4dE1hcExvY2spOworICAgIE11dGV4TG9ja2VyIGxvY2sobV9s
b2NrKTsKICAgICBtX2RhdGFiYXNlQ29udGV4dEluc3RhbmNlQ291bnQtLTsKICAgICBBU1NFUlQo
bV9kYXRhYmFzZUNvbnRleHRSZWdpc3RlcmVkQ291bnQgPD0gbV9kYXRhYmFzZUNvbnRleHRJbnN0
YW5jZUNvdW50KTsKIH0KQEAgLTI2NSw5ICsyNDksMTIgQEAgUGFzc1JlZlB0cjxEYXRhYmFzZUJh
Y2tlbmRCYXNlPiBEYXRhYmFzZQogICAgICAgICAgICAgLy8gVGhlIGNsaWVudCBtYXkgd2FudCB0
byBpbmNyZWFzZSB0aGUgcXVvdGEsIGFuZCB3ZSdsbCBnaXZlIGl0CiAgICAgICAgICAgICAvLyBv
bmUgbW9yZSB0cnkgYWZ0ZXIgaWYgdGhhdCBpcyB0aGUgY2FzZS4KICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICBQcm9wb3NlZERhdGFiYXNlIHByb3Bvc2VkRGIoKnRoaXMsIGNvbnRleHQt
PnNlY3VyaXR5T3JpZ2luKCksIG5hbWUsIGRpc3BsYXlOYW1lLCBlc3RpbWF0ZWRTaXplKTsKKyAg
ICAgICAgICAgICAgICBQcm9wb3NlZERhdGFiYXNlIHByb3Bvc2VkRGIoY29udGV4dC0+c2VjdXJp
dHlPcmlnaW4oKS0+aXNvbGF0ZWRDb3B5KCksCisgICAgICAgICAgICAgICAgICAgIERhdGFiYXNl
RGV0YWlscyhuYW1lLmlzb2xhdGVkQ29weSgpLCBkaXNwbGF5TmFtZS5pc29sYXRlZENvcHkoKSwg
ZXN0aW1hdGVkU2l6ZSwgMCkpOworICAgICAgICAgICAgICAgIGFkZFByb3Bvc2VkRGF0YWJhc2Uo
JnByb3Bvc2VkRGIpOwogICAgICAgICAgICAgICAgIGRhdGFiYXNlQ29udGV4dC0+ZGF0YWJhc2VF
eGNlZWRlZFF1b3RhKG5hbWUsCiAgICAgICAgICAgICAgICAgICAgIERhdGFiYXNlRGV0YWlscyhu
YW1lLmlzb2xhdGVkQ29weSgpLCBkaXNwbGF5TmFtZS5pc29sYXRlZENvcHkoKSwgZXN0aW1hdGVk
U2l6ZSwgMCkpOworICAgICAgICAgICAgICAgIHJlbW92ZVByb3Bvc2VkRGF0YWJhc2UoJnByb3Bv
c2VkRGIpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZXJyb3IgPSBEYXRhYmFzZUVycm9y
OjpOb25lOwogCkBAIC0yOTYsNiArMjgzLDE4IEBAIFBhc3NSZWZQdHI8RGF0YWJhc2VCYWNrZW5k
QmFzZT4gRGF0YWJhc2UKICAgICByZXR1cm4gYmFja2VuZC5yZWxlYXNlKCk7CiB9CiAKK3ZvaWQg
RGF0YWJhc2VNYW5hZ2VyOjphZGRQcm9wb3NlZERhdGFiYXNlKFByb3Bvc2VkRGF0YWJhc2UqIHBy
b3Bvc2VkRGIpCit7CisgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAgbV9wcm9w
b3NlZERhdGFiYXNlcy5hZGQocHJvcG9zZWREYik7Cit9CisKK3ZvaWQgRGF0YWJhc2VNYW5hZ2Vy
OjpyZW1vdmVQcm9wb3NlZERhdGFiYXNlKFByb3Bvc2VkRGF0YWJhc2UqIHByb3Bvc2VkRGIpCit7
CisgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAgbV9wcm9wb3NlZERhdGFiYXNl
cy5yZW1vdmUocHJvcG9zZWREYik7Cit9CisKIFBhc3NSZWZQdHI8RGF0YWJhc2U+IERhdGFiYXNl
TWFuYWdlcjo6b3BlbkRhdGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsCiAg
ICAgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGV4cGVjdGVkVmVyc2lvbiwgY29u
c3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwKICAgICB1bnNpZ25lZCBsb25nIGVzdGltYXRlZFNpemUs
IFBhc3NSZWZQdHI8RGF0YWJhc2VDYWxsYmFjaz4gY3JlYXRpb25DYWxsYmFjaywKQEAgLTM2OSw5
ICszNjgsMTIgQEAgdm9pZCBEYXRhYmFzZU1hbmFnZXI6OnN0b3BEYXRhYmFzZXMoU2NyaQogCiBT
dHJpbmcgRGF0YWJhc2VNYW5hZ2VyOjpmdWxsUGF0aEZvckRhdGFiYXNlKFNlY3VyaXR5T3JpZ2lu
KiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZkRvZXNOb3RFeGlzdCkK
IHsKLSAgICBQcm9wb3NlZERhdGFiYXNlKiBkYiA9IG1fcHJvcG9zZWREYXRhYmFzZTsKLSAgICBp
ZiAoZGIgJiYgZGItPmRldGFpbHMoKS5uYW1lKCkgPT0gbmFtZSAmJiBkYi0+b3JpZ2luKCktPmVx
dWFsKG9yaWdpbikpCi0gICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICB7CisgICAgICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgICAgICBmb3IgKEhhc2hTZXQ8UHJvcG9zZWRE
YXRhYmFzZSo+OjppdGVyYXRvciBpdGVyID0gbV9wcm9wb3NlZERhdGFiYXNlcy5iZWdpbigpOyBp
dGVyICE9IG1fcHJvcG9zZWREYXRhYmFzZXMuZW5kKCk7ICsraXRlcikKKyAgICAgICAgICAgIGlm
ICgoKml0ZXIpLT5zZWNvbmQubmFtZSgpID09IG5hbWUgJiYgKCppdGVyKS0+Zmlyc3QtPmVxdWFs
KG9yaWdpbikpCisgICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIH0KICAgICBy
ZXR1cm4gbV9zZXJ2ZXItPmZ1bGxQYXRoRm9yRGF0YWJhc2Uob3JpZ2luLCBuYW1lLCBjcmVhdGVJ
ZkRvZXNOb3RFeGlzdCk7CiB9CiAKQEAgLTM5MiwxMCArMzk0LDEzIEBAIGJvb2wgRGF0YWJhc2VN
YW5hZ2VyOjpkYXRhYmFzZU5hbWVzRm9yT3IKIAogRGF0YWJhc2VEZXRhaWxzIERhdGFiYXNlTWFu
YWdlcjo6ZGV0YWlsc0Zvck5hbWVBbmRPcmlnaW4oY29uc3QgU3RyaW5nJiBuYW1lLCBTZWN1cml0
eU9yaWdpbiogb3JpZ2luKQogewotICAgIFByb3Bvc2VkRGF0YWJhc2UqIGRiID0gbV9wcm9wb3Nl
ZERhdGFiYXNlOwotICAgIGlmIChkYiAmJiBkYi0+ZGV0YWlscygpLm5hbWUoKSA9PSBuYW1lICYm
IGRiLT5vcmlnaW4oKS0+ZXF1YWwob3JpZ2luKSkgewotICAgICAgICBBU1NFUlQoZGItPmRldGFp
bHMoKS50aHJlYWQoKSA9PSBjdXJyZW50VGhyZWFkKCkgfHwgaXNNYWluVGhyZWFkKCkpOwotICAg
ICAgICByZXR1cm4gZGItPmRldGFpbHMoKTsKKyAgICB7CisgICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX2xvY2spOworICAgICAgICBmb3IgKEhhc2hTZXQ8UHJvcG9zZWREYXRhYmFzZSo+Ojpp
dGVyYXRvciBpdGVyID0gbV9wcm9wb3NlZERhdGFiYXNlcy5iZWdpbigpOyBpdGVyICE9IG1fcHJv
cG9zZWREYXRhYmFzZXMuZW5kKCk7ICsraXRlcikKKyAgICAgICAgICAgIGlmICgoKml0ZXIpLT5z
ZWNvbmQubmFtZSgpID09IG5hbWUgJiYgKCppdGVyKS0+Zmlyc3QtPmVxdWFsKG9yaWdpbikpIHsK
KyAgICAgICAgICAgICAgICBBU1NFUlQoKCppdGVyKS0+c2Vjb25kLnRocmVhZCgpID09IGN1cnJl
bnRUaHJlYWQoKSB8fCBpc01haW5UaHJlYWQoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuICgq
aXRlciktPnNlY29uZDsKKyAgICAgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIG1fc2VydmVy
LT5kZXRhaWxzRm9yTmFtZUFuZE9yaWdpbihuYW1lLCBvcmlnaW4pOwogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlTWFuYWdlci5o
CShyZXZpc2lvbiAxNTgwMjYpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlTWFuYWdlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAjaW5j
bHVkZSAiRGF0YWJhc2VFcnJvci5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCkBAIC0xMDYs
MjAgKzEwNyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGludGVycnVwdEFsbERhdGFiYXNlc0ZvckNv
bnRleHQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogCiBwcml2YXRlOgotICAgIGNsYXNzIFBy
b3Bvc2VkRGF0YWJhc2UgewotICAgIHB1YmxpYzoKLSAgICAgICAgUHJvcG9zZWREYXRhYmFzZShE
YXRhYmFzZU1hbmFnZXImLCBTZWN1cml0eU9yaWdpbiosCi0gICAgICAgICAgICBjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgZXN0aW1h
dGVkU2l6ZSk7Ci0gICAgICAgIH5Qcm9wb3NlZERhdGFiYXNlKCk7Ci0KLSAgICAgICAgU2VjdXJp
dHlPcmlnaW4qIG9yaWdpbigpIHsgcmV0dXJuIG1fb3JpZ2luLmdldCgpOyB9Ci0gICAgICAgIERh
dGFiYXNlRGV0YWlscyYgZGV0YWlscygpIHsgcmV0dXJuIG1fZGV0YWlsczsgfQotCi0gICAgcHJp
dmF0ZToKLSAgICAgICAgRGF0YWJhc2VNYW5hZ2VyJiBtX21hbmFnZXI7Ci0gICAgICAgIFJlZlB0
cjxTZWN1cml0eU9yaWdpbj4gbV9vcmlnaW47Ci0gICAgICAgIERhdGFiYXNlRGV0YWlscyBtX2Rl
dGFpbHM7Ci0gICAgfTsKKyAgICB0eXBlZGVmIHN0ZDo6cGFpcjxSZWZQdHI8U2VjdXJpdHlPcmln
aW4+LCBEYXRhYmFzZURldGFpbHM+IFByb3Bvc2VkRGF0YWJhc2U7CiAKICAgICBEYXRhYmFzZU1h
bmFnZXIoKTsKICAgICB+RGF0YWJhc2VNYW5hZ2VyKCkgeyB9CkBAIC0xMzIsMjIgKzEyMCwyNiBA
QCBwcml2YXRlOgogICAgICAgICBEYXRhYmFzZVR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29u
c3QgU3RyaW5nJiBleHBlY3RlZFZlcnNpb24sIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsCiAg
ICAgICAgIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6ZSwgYm9vbCBzZXRWZXJzaW9uSW5OZXdE
YXRhYmFzZSwgRGF0YWJhc2VFcnJvciYsIFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKIAorICAgIHZv
aWQgYWRkUHJvcG9zZWREYXRhYmFzZShQcm9wb3NlZERhdGFiYXNlKik7CisgICAgdm9pZCByZW1v
dmVQcm9wb3NlZERhdGFiYXNlKFByb3Bvc2VkRGF0YWJhc2UqKTsKKwogICAgIHN0YXRpYyB2b2lk
IGxvZ0Vycm9yTWVzc2FnZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKTsKIAogICAgIEFic3RyYWN0RGF0YWJhc2VTZXJ2ZXIqIG1fc2VydmVyOwogICAgIERh
dGFiYXNlTWFuYWdlckNsaWVudCogbV9jbGllbnQ7CiAgICAgYm9vbCBtX2RhdGFiYXNlSXNBdmFp
bGFibGU7CiAKLSAgICAvLyBBY2Nlc3MgdG8gdGhlIGZvbGxvd2luZyBmaWVsZHMgcmVxdWlyZSBs
b2NraW5nIG1fY29udGV4dE1hcExvY2s6CisgICAgLy8gQWNjZXNzIHRvIHRoZSBmb2xsb3dpbmcg
ZmllbGRzIHJlcXVpcmUgbG9ja2luZyBtX2xvY2sgYmVsb3c6CiAgICAgdHlwZWRlZiBIYXNoTWFw
PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBEYXRhYmFzZUNvbnRleHQqPiBDb250ZXh0TWFwOwog
ICAgIENvbnRleHRNYXAgbV9jb250ZXh0TWFwOwogI2lmICFBU1NFUlRfRElTQUJMRUQKICAgICBp
bnQgbV9kYXRhYmFzZUNvbnRleHRSZWdpc3RlcmVkQ291bnQ7CiAgICAgaW50IG1fZGF0YWJhc2VD
b250ZXh0SW5zdGFuY2VDb3VudDsKICNlbmRpZgotICAgIE11dGV4IG1fY29udGV4dE1hcExvY2s7
CisgICAgSGFzaFNldDxQcm9wb3NlZERhdGFiYXNlKj4gbV9wcm9wb3NlZERhdGFiYXNlczsKIAot
ICAgIFByb3Bvc2VkRGF0YWJhc2UqIG1fcHJvcG9zZWREYXRhYmFzZTsKKyAgICAvLyBUaGlzIGxv
Y2sgcHJvdGVjdHMgbV9jb250ZXh0TWFwLCBhbmQgbV9wcm9wb3NlZERhdGFiYXNlcy4KKyAgICBN
dXRleCBtX2xvY2s7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>
<flag name="review"
          id="237878"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>