<?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>148076</bug_id>
          
          <creation_ts>2015-08-17 06:56:42 -0700</creation_ts>
          <short_desc>jsc-tailcall: Handling exception in caller frame cannot unwind past VMEntry frame</short_desc>
          <delta_ts>2015-09-14 10:59:32 -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>JavaScriptCore</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>148666</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>147759</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>basile_clement</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1118099</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-08-17 06:56:42 -0700</bug_when>
    <thetext>When we have an exception that we process from the caller&apos;s frame, we cannot unwind past the VMEntry frame.

Currently, if a stack overflow check exception happens for a JavaScript frame immediately below a VMENtry frame, we&apos;ll unwind past not only the VMENtry frame, but also any C++ frames to find a JavaScript frame with a catch block.

This &quot;works&quot; for current code, but breaks when callee save registers need to be properly restored during the unwind process.  It can also leak and C++ objects allocated by the C++ code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118101</commentid>
    <comment_count>1</comment_count>
      <attachid>259145</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-08-17 07:11:46 -0700</bug_when>
    <thetext>Created attachment 259145
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118102</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-17 07:12:59 -0700</bug_when>
    <thetext>Attachment 259145 did not pass style-queue:


ERROR: Source/JavaScriptCore/jit/JITExceptions.h:38:  The parameter name &quot;unwindStart&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118272</commentid>
    <comment_count>3</comment_count>
      <attachid>259145</attachid>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-08-17 15:47:46 -0700</bug_when>
    <thetext>Comment on attachment 259145
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:32
&gt; +        (JSC::LLInt::llint_stack_check): Changed to process the exception in the currnet frame.

currnet -&gt; current

&gt; Source/JavaScriptCore/jit/JITExceptions.cpp:67
&gt; +        callFrame = callFrame-&gt;callerFrame(vmEntryFrame);

Nit: You can directly use callFrame-&gt;callerFrame() here.

&gt; Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:487
&gt; -    CommonSlowPaths::interpreterThrowInCaller(exec, createStackOverflowError(exec));
&gt; -    pc = returnToThrowForThrownException(exec);
&gt; +    vm.throwException(exec, createStackOverflowError(exec));
&gt; +    pc = returnToThrow(exec);

I think this should be consistent amongst all the tiers, see below.

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter.asm:923
&gt; -    subp maxFrameExtentForSlowPathCall, sp # Set up temporary stack pointer for call
&gt; +    # Set up temporary stack pointer for call including callee saves
&gt; +    subp maxFrameExtentForSlowPathCall + CalleeSaveSpaceStackAligned, sp

If I understand correctly, the callee save registers are saved below the stack pointer at this point. Could we instead move the saving of callee save after the stack check/setup (which would allow us to continue throwing in the caller)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118284</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-08-17 16:04:11 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 259145 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=259145&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:32
&gt; &gt; +        (JSC::LLInt::llint_stack_check): Changed to process the exception in the currnet frame.
&gt; 
&gt; currnet -&gt; current

Fixed locally.
 
&gt; &gt; Source/JavaScriptCore/jit/JITExceptions.cpp:67
&gt; &gt; +        callFrame = callFrame-&gt;callerFrame(vmEntryFrame);
&gt; 
&gt; Nit: You can directly use callFrame-&gt;callerFrame() here.

Changed locally.

&gt; &gt; Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:487
&gt; &gt; -    CommonSlowPaths::interpreterThrowInCaller(exec, createStackOverflowError(exec));
&gt; &gt; -    pc = returnToThrowForThrownException(exec);
&gt; &gt; +    vm.throwException(exec, createStackOverflowError(exec));
&gt; &gt; +    pc = returnToThrow(exec);
&gt; 
&gt; I think this should be consistent amongst all the tiers, see below.

The reason for the difference is that the LLInt makes a call to lint_stack_check() and the way these slow path calls work is that they pass the PC as the second argument and return the possibly modified PC as the first of two values.  In the LLInt, the PC value is a callee save and therefore it is easiest to preserve the callee saves, set up the PC before making the stack check call.  Given that we need to unwind and restore callee saves for the frame where the stack overflow occurred.  The JITs don&apos;t have this issue.

&gt; &gt; Source/JavaScriptCore/llint/LowLevelInterpreter.asm:923
&gt; &gt; -    subp maxFrameExtentForSlowPathCall, sp # Set up temporary stack pointer for call
&gt; &gt; +    # Set up temporary stack pointer for call including callee saves
&gt; &gt; +    subp maxFrameExtentForSlowPathCall + CalleeSaveSpaceStackAligned, sp
&gt; 
&gt; If I understand correctly, the callee save registers are saved below the
&gt; stack pointer at this point. Could we instead move the saving of callee save
&gt; after the stack check/setup (which would allow us to continue throwing in
&gt; the caller)?

See above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118318</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-08-17 16:58:05 -0700</bug_when>
    <thetext>Committed r188555: &lt;http://trac.webkit.org/changeset/188555&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122408</commentid>
    <comment_count>6</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-08-31 18:08:52 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 148666 ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125646</commentid>
    <comment_count>7</comment_count>
      <attachid>259145</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-09-14 10:59:32 -0700</bug_when>
    <thetext>Comment on attachment 259145
Patch

Cleared review? from attachment 259145 so that this bug does not appear in http://webkit.org/pending-review.  If you would like this patch reviewed, please attach it to a new bug (or re-open this bug before marking it for review again).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259145</attachid>
            <date>2015-08-17 07:11:46 -0700</date>
            <delta_ts>2015-09-14 10:59:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>148076.patch</filename>
            <type>text/plain</type>
            <size>8208</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg4NTIxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBA
CisyMDE1LTA4LTE3ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIGpzYy10YWlsY2FsbDogSGFuZGxpbmcgZXhjZXB0aW9uIGluIGNhbGxlciBmcmFtZSBjYW5u
b3QgdW53aW5kIHBhc3QgVk1FbnRyeSBmcmFtZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MDc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2hlbiB3ZSBhcmUgdW53aW5kaW5nIGZyb20gb3VyIGNhbGxl
ciwgd2UgbmVlZCB0byBjaGVjayBpZiB3ZSBhcmUgdGhlIHRvcCBKYXZhU2NyaXB0IGVudHJ5IGZy
YW1lLgorICAgICAgICBJZiBzbywgd2UgZG9uJ3QgbmVlZCB0byB1bndpbmQgYW55IGZ1cnRoZXIs
IHdlIGp1c3QgcHJvY2VzcyBhcyBhbiB1bmhhbmRsZWQgZXhjZXB0aW9uLgorICAgICAgICBNb3Zl
ZCB0aGUgcHJvY2Vzc2luZyBvZiAidW53aW5kIGZyb20gY2FsbGVyIGZyYW1lIiBpbnRvIGdlbmVy
aWNVbndpbmQoKS4gIEFkZGVkIGFuIGVudW0gcGFyYW1ldGVyCisgICAgICAgIHRvIGluZGljYXRl
IHdoZXRoZXIgb3Igbm90IHdlIHN0YXJ0IHVud2luZGluZyBmcm9tIHRoZSBjdXJyZW50IGZyYW1l
IG9yIGNhbGxlcidzIGZyYW1lLgorICAgICAgICBJbiB0aGUgY2FzZSBvZiB0aGUgTExJbnQsIHdl
IG5vdyBoYW5kbGUgYSBzdGFjayBvdmVyZmxvdyBleGNlcHRpb24gZnJvbSB0aGUgY3VycmVudCBm
cmFtZSBhbmQgbm90CisgICAgICAgIHRoZSBjYWxsZXIncyBmcmFtZS4gIFRoaXMgaXMgbmVlZGVk
IGJlY2F1c2UgdGhlIHVud2luZCBjb2RlIG5lZWRzIHRvIHJlc3RvcmUgdGhlIGNhbGxlZSBzYXZl
cworICAgICAgICB0aGF0IHRoZSBMTEludCBoYXMgc2F2ZWQsIG5hbWVseSB0aGUgUEMgcmVnaXN0
ZXIgd2hpY2ggaXMgbmVlZGVkIHRvIG1ha2Ugc2xvdyBwYXRoIGNhbGxzLgorCisgICAgICAgICog
aW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcDoKKyAgICAgICAgKEpTQzo6Q2FsbEZyYW1lOjpjYWxs
ZXJGcmFtZUlzVk1FbnRyeUZyYW1lKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9DYWxsRnJhbWUu
aDoKKyAgICAgICAgKEpTQzo6Q2FsbEZyYW1lOjpjYWxsZXJGcmFtZUlzVk1FbnRyeUZyYW1lKToK
KyAgICAgICAgTmV3IGhlbHBlciBmdW5jdGlvbiB0byBkZXRlcm1pbmUgaWYgd2UgYXJlIHRoZSB0
b3AgSmF2YVNjcmlwdCBmcmFtZS4KKworICAgICAgICAqIGppdC9KSVRFeGNlcHRpb25zLmNwcDoK
KyAgICAgICAgKEpTQzo6Z2VuZXJpY1Vud2luZCk6CisgICAgICAgICogaml0L0pJVEV4Y2VwdGlv
bnMuaDoKKyAgICAgICAgQWRkZWQgZW51bSBwYXJhbWV0ZXIgdG8gZ2VuZXJpY1Vud2luZCgpIHRv
IGluZGljYXRlIGlmIHdlIGFyZSB1bndpbmRpbmcgZnJvbSB0aGUgY3VycmVudCBvcgorICAgICAg
ICBjYWxsZXIgZnJhbWUuCisKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAg
ICAgIChKU0M6bG9va3VwRXhjZXB0aW9uSGFuZGxlckZyb21DYWxsZXJGcmFtZSk6IE1vdmVkIHRo
ZSBjYWxsZXIgZnJhbWUgcHJvY2Vzc2luZyB0byBnZW5lcmljVW53aW5kKCkuCisKKyAgICAgICAg
KiBsbGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpsbGludF9z
dGFja19jaGVjayk6IENoYW5nZWQgdG8gcHJvY2VzcyB0aGUgZXhjZXB0aW9uIGluIHRoZSBjdXJy
bmV0IGZyYW1lLgorCisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc206Cisg
ICAgICAgIE1hZGUgc3VyZSB0byBhY2NvdW50IGZvciBjYWxsZSBzYXZlIHJlZ2lzdGVyIHNwYWNl
IHdoZW4gbWFraW5nIGEgY2FsbCB0byBsbGludF9zdGFja19jaGVjay4KKwogMjAxNS0wOC0xMSAg
QmFzaWxlIENsZW1lbnQgIDxiYXNpbGVfY2xlbWVudEBhcHBsZS5jb20+CiAKICAgICAgICAganNj
LXRhaWxjYWxsOiBBcml0eSBmaXh1cCBzaG91bGQgbWFrZSB1c2Ugb2YgdGhlIHBvc3NpYmxlIGV4
dHJhIGVtcHR5IHNsb3RzIGF0IHRvcCBvZiB0aGUgZnJhbWUKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuY3BwCShyZXZpc2lvbiAxODg0MTIp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTQ2LDYgKzE0NiwxMSBAQCBDYWxsRnJhbWUqIENhbGxGcmFtZTo6Y2Fs
bGVyRnJhbWUoVk1FbnRyCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhbGxGcmFtZSo+KGNhbGxl
ckZyYW1lT3JWTUVudHJ5RnJhbWUoKSk7CiB9CiAKK2Jvb2wgQ2FsbEZyYW1lOjpjYWxsZXJGcmFt
ZUlzVk1FbnRyeUZyYW1lKFZNRW50cnlGcmFtZSogdm1FbnRyeUZyYW1lKQoreworICAgIHJldHVy
biBjYWxsZXJGcmFtZU9yVk1FbnRyeUZyYW1lKCkgPT0gdm1FbnRyeUZyYW1lOworfQorCiBKU0xl
eGljYWxFbnZpcm9ubWVudCogQ2FsbEZyYW1lOjpsZXhpY2FsRW52aXJvbm1lbnQoKSBjb25zdAog
ewogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gdGhpcy0+Y29kZUJsb2NrKCk7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCShyZXZpc2lv
biAxODg0MTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1l
LmgJKHdvcmtpbmcgY29weSkKQEAgLTk5LDYgKzk5LDggQEAgbmFtZXNwYWNlIEpTQyAgewogCiAg
ICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIENhbGxGcmFtZSogY2FsbGVyRnJhbWUoVk1FbnRyeUZy
YW1lKiYpOwogCisgICAgICAgIGJvb2wgY2FsbGVyRnJhbWVJc1ZNRW50cnlGcmFtZShWTUVudHJ5
RnJhbWUqKTsKKwogICAgICAgICBzdGF0aWMgcHRyZGlmZl90IGNhbGxlckZyYW1lT2Zmc2V0KCkg
eyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKENhbGxlckZyYW1lQW5kUEMsIGNhbGxlckZyYW1lKTsg
fQogCiAgICAgICAgIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuUEMoKSBjb25zdCB7IHJldHVybiBS
ZXR1cm5BZGRyZXNzUHRyKGNhbGxlckZyYW1lQW5kUEMoKS5wYyk7IH0KSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmNwcAkocmV2aXNpb24gMTg4NDEyKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDAsNyArNDAsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotdm9pZCBnZW5lcmlj
VW53aW5kKFZNKiB2bSwgRXhlY1N0YXRlKiBjYWxsRnJhbWUpCit2b2lkIGdlbmVyaWNVbndpbmQo
Vk0qIHZtLCBFeGVjU3RhdGUqIGNhbGxGcmFtZSwgVW53aW5kU3RhcnQgdW53aW5kU3RhcnQpCiB7
CiAgICAgaWYgKE9wdGlvbnM6OmJyZWFrT25UaHJvdygpKSB7CiAgICAgICAgIGRhdGFMb2coIklu
IGNhbGwgZnJhbWUgIiwgUmF3UG9pbnRlcihjYWxsRnJhbWUpLCAiIGZvciBjb2RlIGJsb2NrICIs
ICpjYWxsRnJhbWUtPmNvZGVCbG9jaygpLCAiXG4iKTsKQEAgLTUwLDYgKzUwLDIzIEBAIHZvaWQg
Z2VuZXJpY1Vud2luZChWTSogdm0sIEV4ZWNTdGF0ZSogY2EKICAgICBFeGNlcHRpb24qIGV4Y2Vw
dGlvbiA9IHZtLT5leGNlcHRpb24oKTsKICAgICBSRUxFQVNFX0FTU0VSVChleGNlcHRpb24pOwog
ICAgIFZNRW50cnlGcmFtZSogdm1FbnRyeUZyYW1lID0gdm0tPnRvcFZNRW50cnlGcmFtZTsKKwor
ICAgIGlmICh1bndpbmRTdGFydCA9PSBVbndpbmRGcm9tQ2FsbGVyRnJhbWUpIHsKKyAgICAgICAg
aWYgKGNhbGxGcmFtZS0+Y2FsbGVyRnJhbWVJc1ZNRW50cnlGcmFtZSh2bUVudHJ5RnJhbWUpKSB7
CisgICAgICAgICAgICAvLyBJZiB3ZSBhcmUgdW53aW5kaW5nIGZyb20gb3VyIGNhbGxlciBhbmQg
b3VyIGNhbGxlciBpcyBhIFZNRW50cnlGcmFtZSwgd2UgZG9uJ3QgbmVlZCB0byB1bndpbmQuCisg
ICAgICAgICAgICAvLyBXZSBjYW4gZ28gc3RyYWlnaHQgdG8gaGFuZGxlVW5jYXVnaHRFeGNlcHRp
b24uCisgICAgICAgICAgICB2bS0+dm1FbnRyeUZyYW1lRm9yVGhyb3cgPSB2bUVudHJ5RnJhbWU7
CisgICAgICAgICAgICB2bS0+Y2FsbEZyYW1lRm9yVGhyb3cgPSBjYWxsRnJhbWU7CisgICAgICAg
ICAgICB2bS0+dGFyZ2V0TWFjaGluZVBDRm9yVGhyb3cgPSBMTEludDo6Z2V0Q29kZVB0cihoYW5k
bGVVbmNhdWdodEV4Y2VwdGlvbik7CisgICAgICAgICAgICB2bS0+dGFyZ2V0SW50ZXJwcmV0ZXJQ
Q0ZvclRocm93ID0gbnVsbHB0cjsKKworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisK
KyAgICAgICAgLy8gU3RhcnQgdW53aW5kaW5nIGZyb20gb3VyIGNhbGxlcidzIGZyYW1lLgorICAg
ICAgICBjYWxsRnJhbWUgPSBjYWxsRnJhbWUtPmNhbGxlckZyYW1lKHZtRW50cnlGcmFtZSk7Cisg
ICAgICAgIHZtLT50b3BDYWxsRnJhbWUgPSBjYWxsRnJhbWU7CisgICAgfQogICAgIEhhbmRsZXJJ
bmZvKiBoYW5kbGVyID0gdm0tPmludGVycHJldGVyLT51bndpbmQodm1FbnRyeUZyYW1lLCBjYWxs
RnJhbWUsIGV4Y2VwdGlvbik7IC8vIFRoaXMgbWF5IHVwZGF0ZSB2bUVudHJ5RnJhbWUgYW5kIGNh
bGxGcmFtZS4KIAogICAgIHZvaWQqIGNhdGNoUm91dGluZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5oCShyZXZpc2lvbiAxODg0MTIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVEV4Y2VwdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMzMs
NyArMzMsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEV4ZWNTdGF0ZTsKIGNsYXNzIFZNOwog
Ci12b2lkIGdlbmVyaWNVbndpbmQoVk0qLCBFeGVjU3RhdGUqKTsKK2VudW0gVW53aW5kU3RhcnQg
eyBVbndpbmRGcm9tQ3VycmVudEZyYW1lLCBVbndpbmRGcm9tQ2FsbGVyRnJhbWUgfTsKKwordm9p
ZCBnZW5lcmljVW53aW5kKFZNKiwgRXhlY1N0YXRlKiwgVW53aW5kU3RhcnQgdW53aW5kU3RhcnQg
PSBVbndpbmRGcm9tQ3VycmVudEZyYW1lKTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkocmV2aXNpb24g
MTg4NDEyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTkzNiwxMiArMTkzNiw4IEBAIHZvaWQgSklUX09QRVJBVElPTiBs
b29rdXBFeGNlcHRpb25IYW5kbGUKIAogdm9pZCBKSVRfT1BFUkFUSU9OIGxvb2t1cEV4Y2VwdGlv
bkhhbmRsZXJGcm9tQ2FsbGVyRnJhbWUoVk0qIHZtLCBFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAg
Vk1FbnRyeUZyYW1lKiB2bUVudHJ5RnJhbWUgPSB2bS0+dG9wVk1FbnRyeUZyYW1lOwotICAgIENh
bGxGcmFtZSogY2FsbGVyRnJhbWUgPSBleGVjLT5jYWxsZXJGcmFtZSh2bUVudHJ5RnJhbWUpOwot
ICAgIEFTU0VSVChjYWxsZXJGcmFtZSk7Ci0KLSAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXJXaXRo
UmVzdG9yZSB0cmFjZXIodm0sIHZtRW50cnlGcmFtZSwgY2FsbGVyRnJhbWUpOwotICAgIGdlbmVy
aWNVbndpbmQodm0sIGNhbGxlckZyYW1lKTsKKyAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKHZtLCBleGVjKTsKKyAgICBnZW5lcmljVW53aW5kKHZtLCBleGVjLCBVbndpbmRGcm9tQ2Fs
bGVyRnJhbWUpOwogICAgIEFTU0VSVCh2bS0+dGFyZ2V0TWFjaGluZVBDRm9yVGhyb3cpOwogfQog
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5j
cHAJKHJldmlzaW9uIDE4ODQxMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dFNsb3dQYXRocy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4Myw4ICs0ODMsOCBAQCBMTElOVF9T
TE9XX1BBVEhfREVDTChzdGFja19jaGVjaykKIAogICAgIHZtLnRvcENhbGxGcmFtZSA9IGV4ZWM7
CiAgICAgRXJyb3JIYW5kbGluZ1Njb3BlIGVycm9yU2NvcGUodm0pOwotICAgIENvbW1vblNsb3dQ
YXRoczo6aW50ZXJwcmV0ZXJUaHJvd0luQ2FsbGVyKGV4ZWMsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dF
cnJvcihleGVjKSk7Ci0gICAgcGMgPSByZXR1cm5Ub1Rocm93Rm9yVGhyb3duRXhjZXB0aW9uKGV4
ZWMpOworICAgIHZtLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJv
cihleGVjKSk7CisgICAgcGMgPSByZXR1cm5Ub1Rocm93KGV4ZWMpOwogICAgIExMSU5UX1JFVFVS
Tl9UV08ocGMsIGV4ZWMpOwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlci5hc20KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCShyZXZpc2lvbiAxODg0MTIpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20JKHdvcmtp
bmcgY29weSkKQEAgLTIyNyw2ICsyMjcsOSBAQCBlbHNlCiAgICAgY29uc3QgQ2FsbGVlU2F2ZVNw
YWNlQXNWaXJ0dWFsUmVnaXN0ZXJzID0gMAogZW5kCiAKK2NvbnN0IENhbGxlZVNhdmVTcGFjZVN0
YWNrQWxpZ25lZCA9IChDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKiBTbG90U2l6
ZSArIFN0YWNrQWxpZ25tZW50IC0gMSkgJiB+U3RhY2tBbGlnbm1lbnRNYXNrCisKKwogIyBXYXRj
aHBvaW50IHN0YXRlcwogY29uc3QgQ2xlYXJXYXRjaHBvaW50ID0gMAogY29uc3QgSXNXYXRjaGVk
ID0gMQpAQCAtOTE2LDcgKzkxOSw4IEBAIG1hY3JvIHByb2xvZ3VlKGNvZGVCbG9ja0dldHRlciwg
Y29kZUJsb2MKICAgICBicGJlcSBWTTo6bV9qc1N0YWNrTGltaXRbdDJdLCB0MCwgLnN0YWNrSGVp
Z2h0T0sKIAogICAgICMgU3RhY2sgaGVpZ2h0IGNoZWNrIGZhaWxlZCAtIG5lZWQgdG8gY2FsbCBh
IHNsb3dfcGF0aC4KLSAgICBzdWJwIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLCBzcCAj
IFNldCB1cCB0ZW1wb3Jhcnkgc3RhY2sgcG9pbnRlciBmb3IgY2FsbAorICAgICMgU2V0IHVwIHRl
bXBvcmFyeSBzdGFjayBwb2ludGVyIGZvciBjYWxsIGluY2x1ZGluZyBjYWxsZWUgc2F2ZXMKKyAg
ICBzdWJwIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsICsgQ2FsbGVlU2F2ZVNwYWNlU3Rh
Y2tBbGlnbmVkLCBzcAogICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc3RhY2tfY2hlY2spCiAgICAg
YnBlcSByMSwgMCwgLnN0YWNrSGVpZ2h0T0tHZXRDb2RlQmxvY2sKICAgICBtb3ZlIHIxLCBjZnIK
</data>

          </attachment>
      

    </bug>

</bugzilla>