<?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>36239</bug_id>
          
          <creation_ts>2010-03-17 13:03:41 -0700</creation_ts>
          <short_desc>[v8] Avoid reentry into v8 after TerminateExecution() on a worker thread.</short_desc>
          <delta_ts>2010-03-17 15:39:02 -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>WebCore JavaScript</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>36241</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dmitry Titov">dimich</reporter>
          <assigned_to name="Dmitry Titov">dimich</assigned_to>
          <cc>antonm</cc>
    
    <cc>atwilson</cc>
    
    <cc>dglazkov</cc>
    
    <cc>levin</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>200927</commentid>
    <comment_count>0</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2010-03-17 13:03:41 -0700</bug_when>
    <thetext>V8 will crash or return Null values if used after v8::V8::TerminateExecution is invoked. We use it to terminate a worker. That exits JS stack but if the C++ code tries to execute JS again, crashes happen.

For example, when worker has a MessagePort and receives a lot of messages, the MessagePort::dispatchMessages() will loop over accumulated messages and fire onmessage event. There are multiple places like that. So some sort of check for possible continuation should be made.

The v8 exposes a instance-wide flag, IsExecutionTerminating(), and we have a flag in WorkerScritpController that indicates we have called TerminateExecution. I&apos;ve looked over the code and realized that adding yet another check to various existing ones (valid proxy, canExecuteScripts, IsPaused etc) would only complicate things. Instead, it seems most JS execution requires to obtain a v8 context, in the form of WorkerContextExecutionProxy - and most places already check for it being 0 and bail out. So I&apos;ve added a check for termination into WorkerScriptController::proxy() accessor and fixed up couple of places that didn&apos;t have check for 0. this way, we can stop v8 reentry w/o additional check sprinkled around.

Patch coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>200936</commentid>
    <comment_count>1</comment_count>
      <attachid>50947</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2010-03-17 13:14:30 -0700</bug_when>
    <thetext>Created attachment 50947
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>200937</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-17 13:18:58 -0700</bug_when>
    <thetext>Attachment 50947 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/845051</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>200938</commentid>
    <comment_count>3</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2010-03-17 13:23:17 -0700</bug_when>
    <thetext>Please ignore Chromium EWS build failure - it is using older v8 revision. I&apos;ll
submit updated DEPS for it before landing this patch, to avoid chromium build
bot break.

Separately, this patch went through chromium try bots on 3 platforms with
green.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>200956</commentid>
    <comment_count>4</comment_count>
      <attachid>50947</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-03-17 13:55:25 -0700</bug_when>
    <thetext>Comment on attachment 50947
Patch.

ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201009</commentid>
    <comment_count>5</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2010-03-17 15:39:02 -0700</bug_when>
    <thetext>Landed: http://trac.webkit.org/changeset/56131</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50947</attachid>
            <date>2010-03-17 13:14:30 -0700</date>
            <delta_ts>2010-03-17 13:55:25 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>7420</size>
            <attacher name="Dmitry Titov">dimich</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2ODU0YWU3Li4zZWJhYmNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDMt
MTcgIERtaXRyeSBUaXRvdiAgPGRpbWljaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW3Y4XSBBdm9pZCByZWVudHJ5IGludG8g
djggYWZ0ZXIgVGVybWluYXRlRXhlY3V0aW9uKCkgb24gYSB3b3JrZXIgdGhyZWFkLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzYyMzkKKworICAgICAg
ICAqIGZhc3Qvd29ya2Vycy9yZXNvdXJjZXMvdGVybWluYXRpb24td2l0aC1wb3J0LW1lc3NhZ2Vz
LmpzOiBBZGRlZC4KKyAgICAgICAgKGVjaG8pOgorICAgICAgICAob25tZXNzYWdlKToKKyAgICAg
ICAgKiBmYXN0L3dvcmtlcnMvdGVybWluYXRpb24td2l0aC1wb3J0LW1lc3NhZ2VzLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC93b3JrZXJzL3Rlcm1pbmF0aW9uLXdpdGgtcG9y
dC1tZXNzYWdlcy5odG1sOiBBZGRlZC4KKwogMjAxMC0wMy0xNiAgSm9obiBBYmQtRWwtTWFsZWsg
IDxqYW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvdGVybWluYXRp
b24td2l0aC1wb3J0LW1lc3NhZ2VzLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3Jlc291
cmNlcy90ZXJtaW5hdGlvbi13aXRoLXBvcnQtbWVzc2FnZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uYTgyN2RiMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvdGVybWluYXRpb24td2l0aC1wb3J0LW1lc3NhZ2VzLmpz
CkBAIC0wLDAgKzEsMTAgQEAKK2Z1bmN0aW9uIGVjaG8oZXZ0KQoreworICAgIGV2dC50YXJnZXQu
cG9zdE1lc3NhZ2UoZXZ0LmRhdGEpOworfQorCitvbm1lc3NhZ2UgPSBmdW5jdGlvbihldnQpCit7
CisgICAgZXZ0LnBvcnRzWzBdLm9ubWVzc2FnZSA9IGVjaG87CisgICAgZXZ0LnBvcnRzWzBdLnN0
YXJ0KCk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvdGVybWluYXRp
b24td2l0aC1wb3J0LW1lc3NhZ2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvd29y
a2Vycy90ZXJtaW5hdGlvbi13aXRoLXBvcnQtbWVzc2FnZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdhZThkMjkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvdGVybWluYXRpb24td2l0aC1wb3J0LW1lc3NhZ2VzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitUaGlzIHRlc3QgdGVybWluYXRlcyBhIHdvcmtlciB3
aGVuIHRoZXJlIGFyZSBtYW55IHVuZGVsaXZlcmVkIE1lc3NhZ2VQb3J0IG1lc3NhZ2VzIHN0aWxs
IHdhaXRpbmcgdG8gYmUgZGlzcGF0Y2hlZCBpbnRvIHRoZSBXb3JrZXIgQ29udGV4dC4gVGhpcyBj
YXVzZXMgdGVybWluYXRpb24gb2YgSlMgZXhlY3V0aW9uIGFuZCB0ZXN0IHNob3VsZCBub3QgdHJ5
IHRvIGRpc3BhdGNoIHRoZSByZW1haW5pbmcgbWVzc2FnZXMuIFRlc3Qgc3VjY2VlZHMgaWYgaXQg
ZG9lcyBub3QgaGFuZyBvciBjcmFzaCAoaWYgd29ya2VyIHRocmVhZCBpcyBydW5uaW5nIGluIHRo
ZSBzZXBhcmF0ZSBwcm9jZXNzLCB0aGF0IHByb2Nlc3MgY291bGQgaGFuZyBvciBjcmFzaCkuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvdGVybWluYXRpb24td2l0aC1wb3J0
LW1lc3NhZ2VzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvdGVybWluYXRpb24td2l0
aC1wb3J0LW1lc3NhZ2VzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NDViYWI3ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy90ZXJt
aW5hdGlvbi13aXRoLXBvcnQtbWVzc2FnZXMuaHRtbApAQCAtMCwwICsxLDI4IEBACis8c2NyaXB0
PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICB2YXIg
d29ya2VyID0gbmV3IFdvcmtlcigicmVzb3VyY2VzL3Rlcm1pbmF0aW9uLXdpdGgtcG9ydC1tZXNz
YWdlcy5qcyIpOworICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7CisKKyAg
ICBjaGFubmVsLnBvcnQyLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2dCkKKyAgICB7CisgICAgICAg
IC8vIE9uIGZpcnN0IG1lc3NhZ2UgYmFjayBmcm9tIHdvcmtlciwgdGVybWluYXRlIGl0LgorICAg
ICAgICB3b3JrZXIudGVybWluYXRlKCk7CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgICAgICAgICBzZXRUaW1lb3V0KCJsYXlvdXRUZXN0Q29udHJvbGxlci5u
b3RpZnlEb25lKCk7IiwgMCk7CisgICAgfQorICAgIGNoYW5uZWwucG9ydDIuc3RhcnQoKTsKKwor
ICAgIHdvcmtlci5wb3N0TWVzc2FnZSgiIiwgW2NoYW5uZWwucG9ydDFdKTsKKyAgICBmb3IgKGkg
PSAwOyBpIDwgMTAwMDsgaSsrKQorICAgICAgICBjaGFubmVsLnBvcnQyLnBvc3RNZXNzYWdlKCJt
ZXNzYWdlIHRvIHdvcmtlciIpOworfQorPC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9dGVzdCgpPgor
PHA+VGhpcyB0ZXN0IHRlcm1pbmF0ZXMgYSB3b3JrZXIgd2hlbiB0aGVyZSBhcmUgbWFueSB1bmRl
bGl2ZXJlZCBNZXNzYWdlUG9ydCBtZXNzYWdlcyBzdGlsbCB3YWl0aW5nIHRvIGJlIGRpc3BhdGNo
ZWQgaW50byB0aGUgV29ya2VyIENvbnRleHQuIFRoaXMgY2F1c2VzIHRlcm1pbmF0aW9uIG9mIEpT
IGV4ZWN1dGlvbiBhbmQgdGVzdCBzaG91bGQgbm90IHRyeSB0byBkaXNwYXRjaCB0aGUgcmVtYWlu
aW5nIG1lc3NhZ2VzLiBUZXN0IHN1Y2NlZWRzIGlmIGl0IGRvZXMgbm90IGhhbmcgb3IgY3Jhc2gg
KGlmIHdvcmtlciB0aHJlYWQgaXMgcnVubmluZyBpbiB0aGUgc2VwYXJhdGUgcHJvY2VzcywgdGhh
dCBwcm9jZXNzIGNvdWxkIGhhbmcgb3IgY3Jhc2gpLjwvcD4KKzwvYm9keT4KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDc5Y2MzNC4uZTkx
NDk5NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0wMy0xNyAgRG1pdHJ5IFRpdG92ICA8ZGltaWNoQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBbdjhdIEF2b2lkIHJlZW50cnkgaW50byB2OCBhZnRlciBUZXJtaW5hdGVFeGVjdXRpb24o
KSBvbiBhIHdvcmtlciB0aHJlYWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zNjIzOQorCisgICAgICAgIFRlc3Q6IGZhc3Qvd29ya2Vycy90ZXJtaW5h
dGlvbi13aXRoLXBvcnQtbWVzc2FnZXMuaHRtbAorCisgICAgICAgICogYmluZGluZ3MvdjgvVjhQ
cm94eS5oOgorICAgICAgICAoV2ViQ29yZTo6dGhyb3dFcnJvcik6IEF2b2lkIHRocm93aW5nIGlm
IHY4IGV4ZWN1dGlvbiBpcyB0ZXJtaW5hdGVkIGFueXdheXMuCisgICAgICAgICogYmluZGluZ3Mv
djgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2Ny
aXB0Q29udHJvbGxlcjo6cHJveHkpOiBSZXR1cm4gVjggcHJveHkgYXMgMCBpZiBleGVjdXRpb24g
aXMgdGVybWluYXRpbmcuIENhbGxlcnMgdG8gY2hlY2sgZm9yIDAgYmVmb3JlIGludm9raW5nIHY4
LgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdvcmtlckNvbnRleHRDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2V0VGltZW91dE9ySW50ZXJ2YWwpOiBCYWlsIG91dCBpZiB2
OCBwcm94eSBpcyAwLgorICAgICAgICAoV2ViQ29yZTo6dG9WOCk6IERpdHRvCisKIDIwMTAtMDMt
MTYgIEpvaG4gQWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBEYXJpbiBGaXNoZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
UHJveHkuaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5oCmluZGV4IGEzZGExNTUuLjE0
YzZiNGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5oCisrKyBiL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5oCkBAIC00MzcsMTkgKzQzNywyMiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgfQogICAgIGlubGluZSB2ODo6SGFuZGxlPHY4OjpQcmltaXRpdmU+
IHRocm93RXJyb3IoY29uc3QgY2hhciogbWVzc2FnZSwgVjhQcm94eTo6RXJyb3JUeXBlIHR5cGUg
PSBWOFByb3h5OjpUeXBlRXJyb3IpCiAgICAgewotICAgICAgICBWOFByb3h5Ojp0aHJvd0Vycm9y
KHR5cGUsIG1lc3NhZ2UpOworICAgICAgICBpZiAoIXY4OjpWODo6SXNFeGVjdXRpb25UZXJtaW5h
dGluZygpKQorICAgICAgICAgICAgVjhQcm94eTo6dGhyb3dFcnJvcih0eXBlLCBtZXNzYWdlKTsK
ICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKICAgICB9CiAKICAgICBpbmxpbmUgdjg6
OkhhbmRsZTx2ODo6UHJpbWl0aXZlPiB0aHJvd0Vycm9yKEV4Y2VwdGlvbkNvZGUgZWMpCiAgICAg
ewotICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oZWMpOworICAgICAgICBpZiAoIXY4
OjpWODo6SXNFeGVjdXRpb25UZXJtaW5hdGluZygpKQorICAgICAgICAgICAgVjhQcm94eTo6c2V0
RE9NRXhjZXB0aW9uKGVjKTsKICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKICAgICB9
CiAKICAgICBpbmxpbmUgdjg6OkhhbmRsZTx2ODo6UHJpbWl0aXZlPiB0aHJvd0Vycm9yKHY4OjpM
b2NhbDx2ODo6VmFsdWU+IGV4Y2VwdGlvbikKICAgICB7Ci0gICAgICAgIHY4OjpUaHJvd0V4Y2Vw
dGlvbihleGNlcHRpb24pOworICAgICAgICBpZiAoIXY4OjpWODo6SXNFeGVjdXRpb25UZXJtaW5h
dGluZygpKQorICAgICAgICAgICAgdjg6OlRocm93RXhjZXB0aW9uKGV4Y2VwdGlvbik7CiAgICAg
ICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaCBiL1dlYkNvcmUvYmluZGluZ3Mv
djgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCmluZGV4IDA3ZTIyNGMuLmQzNzRlZDggMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCisrKyBi
L1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCkBAIC00OCw3ICs0
OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgV29ya2VyU2NyaXB0Q29udHJvbGxl
cihXb3JrZXJDb250ZXh0Kik7CiAgICAgICAgIH5Xb3JrZXJTY3JpcHRDb250cm9sbGVyKCk7CiAK
LSAgICAgICAgV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5KiBwcm94eSgpIHsgcmV0dXJuIG1f
cHJveHkuZ2V0KCk7IH0KKyAgICAgICAgV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5KiBwcm94
eSgpIHsgcmV0dXJuIG1fZXhlY3V0aW9uRm9yYmlkZGVuID8gMCA6IG1fcHJveHkuZ2V0KCk7IH0K
IAogICAgICAgICBTY3JpcHRWYWx1ZSBldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJik7
CiAgICAgICAgIFNjcmlwdFZhbHVlIGV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBT
Y3JpcHRWYWx1ZSogZXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4V29ya2VyQ29udGV4dEN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOFdvcmtlckNvbnRleHRDdXN0b20uY3BwCmluZGV4IDA2OTBiMDcuLjgwNDA2N2IgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V29ya2VyQ29udGV4dEN1c3Rv
bS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXb3JrZXJDb250ZXh0Q3Vz
dG9tLmNwcApAQCAtNTgsNyArNTgsMTEgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFNldFRpbWVv
dXRPckludGVydmFsKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MsIGJvb2wgc2luZ2wKICAgICBp
bnQzMl90IHRpbWVvdXQgPSBhcmd1bWVudENvdW50ID49IDIgPyBhcmdzWzFdLT5JbnQzMlZhbHVl
KCkgOiAwOwogICAgIGludCB0aW1lcklkOwogCi0gICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4g
djhDb250ZXh0ID0gd29ya2VyQ29udGV4dC0+c2NyaXB0KCktPnByb3h5KCktPmNvbnRleHQoKTsK
KyAgICBXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkqIHByb3h5ID0gd29ya2VyQ29udGV4dC0+
c2NyaXB0KCktPnByb3h5KCk7CisgICAgaWYgKCFwcm94eSkKKyAgICAgICAgcmV0dXJuIHY4OjpV
bmRlZmluZWQoKTsKKworICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IHY4Q29udGV4dCA9IHBy
b3h5LT5jb250ZXh0KCk7CiAgICAgaWYgKGZ1bmN0aW9uLT5Jc1N0cmluZygpKSB7CiAgICAgICAg
IFdlYkNvcmU6OlN0cmluZyBzdHJpbmdGdW5jdGlvbiA9IHRvV2ViQ29yZVN0cmluZyhmdW5jdGlv
bik7CiAgICAgICAgIHRpbWVySWQgPSBET01UaW1lcjo6aW5zdGFsbCh3b3JrZXJDb250ZXh0LCBu
ZXcgU2NoZWR1bGVkQWN0aW9uKHY4Q29udGV4dCwgc3RyaW5nRnVuY3Rpb24sIHdvcmtlckNvbnRl
eHQtPnVybCgpKSwgdGltZW91dCwgc2luZ2xlU2hvdCk7CkBAIC0xMzEsNyArMTM1LDExIEBAIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KFdvcmtlckNvbnRleHQqIGltcGwpCiAgICAgaWYgKCFp
bXBsKQogICAgICAgICByZXR1cm4gdjg6Ok51bGwoKTsKIAotICAgIHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4gZ2xvYmFsID0gaW1wbC0+c2NyaXB0KCktPnByb3h5KCktPmNvbnRleHQoKS0+R2xvYmFs
KCk7CisgICAgV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5KiBwcm94eSA9IGltcGwtPnNjcmlw
dCgpLT5wcm94eSgpOworICAgIGlmICghcHJveHkpCisgICAgICAgIHJldHVybiB2ODo6TnVsbCgp
OworCisgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBnbG9iYWwgPSBwcm94eS0+Y29udGV4dCgp
LT5HbG9iYWwoKTsKICAgICBBU1NFUlQoIWdsb2JhbC5Jc0VtcHR5KCkpOwogICAgIHJldHVybiBn
bG9iYWw7CiB9Cg==
</data>
<flag name="review"
          id="34125"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
    <flag name="commit-queue"
          id="34126"
          type_id="3"
          status="-"
          setter="dimich"
    />
          </attachment>
      

    </bug>

</bugzilla>