<?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>197323</bug_id>
          
          <creation_ts>2019-04-26 13:41:28 -0700</creation_ts>
          <short_desc>Improve safety of MachMessage class</short_desc>
          <delta_ts>2019-04-27 10:09:31 -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>WebKit2</component>
          <version>WebKit 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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1530793</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-26 13:41:28 -0700</bug_when>
    <thetext>Improve safety of MachMessage class and clean things up a bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1530794</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-26 13:41:57 -0700</bug_when>
    <thetext>&lt;rdar://problem/44291920&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1530796</commentid>
    <comment_count>2</comment_count>
      <attachid>368346</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-26 13:55:17 -0700</bug_when>
    <thetext>Created attachment 368346
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1530816</commentid>
    <comment_count>3</comment_count>
      <attachid>368353</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-26 14:50:11 -0700</bug_when>
    <thetext>Created attachment 368353
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1530824</commentid>
    <comment_count>4</comment_count>
      <attachid>368353</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-26 15:05:19 -0700</bug_when>
    <thetext>Comment on attachment 368353
Patch

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

&gt; Source/WebKit/Platform/IPC/mac/MachMessage.cpp:37
&gt; +    void* memory = WTF::fastZeroedMalloc(sizeof(MachMessage) + size);

Are there any performance indications of this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1530829</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-26 15:19:49 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #4)
&gt; Comment on attachment 368353 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=368353&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/Platform/IPC/mac/MachMessage.cpp:37
&gt; &gt; +    void* memory = WTF::fastZeroedMalloc(sizeof(MachMessage) + size);
&gt; 
&gt; Are there any performance indications of this change?

There could be a performance impact although I personally doubt it. I believe zero&apos;ing memory is normally pretty cheap and while IPC is frequent, I do not believe it is super-hot.

Any any case, this is security-sensitive code so we want it to be robust. I have also explain in the changelog and in the radar (in more details) why I believe this will fix flaky crashes.

If it does regress performance, then we can try and find another solution but I think other solution will likely be more fragile. I say let&apos;s try the safest / most robust thing first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1530971</commentid>
    <comment_count>6</comment_count>
      <attachid>368353</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-27 10:09:29 -0700</bug_when>
    <thetext>Comment on attachment 368353
Patch

Clearing flags on attachment: 368353

Committed r244721: &lt;https://trac.webkit.org/changeset/244721&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1530972</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-27 10:09:31 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>368346</attachid>
            <date>2019-04-26 13:55:17 -0700</date>
            <delta_ts>2019-04-26 14:50:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197323-20190426135516.patch</filename>
            <type>text/plain</type>
            <size>10094</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0Njg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBjNjdmNzViMjJkNmExMWU3
ODU4MGYxOWY1N2UzZDMxNjRhMTIwMzguLmNhNTUzMDFjNGUxM2VjZGM3MDQxY2EwYWFjZTUzZjBk
ZmE3YmMzZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMTktMDQtMjYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBJbXByb3ZlIHNhZmV0eSBvZiBNYWNo
TWVzc2FnZSBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTk3MzIzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NDI5MTkyMD4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXByb3ZlIHNhZmV0eSBv
ZiBNYWNoTWVzc2FnZSBjbGFzcyBhbmQgY2xlYW4gdGhpbmdzIHVwIGEgYml0LgorCisgICAgICAg
ICogUGxhdGZvcm0vSVBDL21hYy9Db25uZWN0aW9uTWFjLm1tOgorICAgICAgICBTZXQgaW5saW5l
TWVzc2FnZU1heFNpemUgdG8gUEFHRV9TSVpFIGluc3RlYWQgb2YgaGFyZGNvZGluZyA0MDk2Lgor
CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnNlbmRPdXRnb2luZ01lc3NhZ2UpOgorICAgICAg
ICAtIFBhc3MgTWVzc2FnZVJlY2VpdmVyTmFtZSAvIE1lc3NhZ2VOYW1lIHdoZW4gY29uc3RydWN0
aW5nIHRoZSBNYWNoTWVzc2FnZSByYXRoZXIKKyAgICAgICAgICB0aGFuIHNldHRpbmcgdGhlbSBh
ZnRlcndhcmRzIHNpbmNlIHRoZXkgbmV2ZXIgY2hhbmdlIGZvciBhIGdpdmVuIE1hY2hNZXNzYWdl
LgorICAgICAgICAtIFNldCBoZWFkZXItPm1zZ2hfaWQgdG8gdGhlIHJpZ2h0IHZhbHVlIHJpZ2h0
IGF3YXkgaW5zdGVhZCBvZiBzZXR0aW5nIGl0IGZpcnN0CisgICAgICAgICAgdG8gaW5saW5lQm9k
eU1lc3NhZ2VJRCBhbmQgdGhlbiBsYXRlciBmaXhpbmcgaXQgdG8gYmUgb3V0T2ZMaW5lQm9keU1l
c3NhZ2VJRAorICAgICAgICAgIHdoZW4gdGhlIGJvZHkgaXMgb3V0IG9mIGxpbmUuCisgICAgICAg
IC0gV2hlbiBtZXNzYWdlQm9keUlzT09MIHdhcyB0cnVlLCB3ZSB3b3VsZCBjYWxsIGdldERlc2Ny
aXB0b3JBbmRTa2lwKCkgd2hpY2gKKyAgICAgICAgICB3b3VsZCBhZHZhbmNlIHRoZSBwb2ludGVy
IGJ5IHNpemVvZihtYWNoX21zZ19wb3J0X2Rlc2NyaXB0b3JfdCksIGV2ZW4gdGhvdWdoCisgICAg
ICAgICAgdGhlIGRlc2NyaXB0b3IgdHlwZSBpcyBtYWNoX21zZ19vb2xfZGVzY3JpcHRvcl90LiBU
aGlzIHdvdWxkIG5vdCBtYXR0ZXIgaW4KKyAgICAgICAgICB0aGUgZW5kIGJlY2F1c2Ugd2Ugd291
bGQgbm90IHVzZSB0aGUgbWVzc2FnZURhdGEgcG9pbnRlciBhZnRlciB0aGlzIGJ1dAorICAgICAg
ICAgIHN0aWxsLgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL21hYy9NYWNoTWVzc2FnZS5jcHA6
CisgICAgICAgIChJUEM6Ok1hY2hNZXNzYWdlOjpjcmVhdGUpOgorICAgICAgICBVc2UgZmFzdFpl
cm9lZE1hbGxvYygpIGluc3RlYWQgb2YgZmFzdE1hbGxvYygpIGZvciBzYWZldHksIGdpdmVuIHRo
YXQgdGhpcyBjbGFzcworICAgICAgICBoYXMgYSBtYWNoX21zZ19oZWFkZXJfdCBmbGV4aWJsZSBh
cnJheSBtZW1iZXIuIFRoaXMgaXMgd2hhdCBpcyByZWNvbW1lbmRlZCBieSB0aGUKKyAgICAgICAg
bWFjaCBkb2N1bWVudGF0aW9uLiBJdCBpcyBtdWNoIHNhZmVyIGJlY2F1c2UgaXQgb3RoZXJ3aXpl
IHJlbGllcyBvbiB0aGUgdXNlcgorICAgICAgICAoQ29ubmVjdGlvbjo6c2VuZE91dGdvaW5nTWVz
c2FnZSgpKSB0byBpbml0aWFsaXplIEFMTCB0aGUgbWVzc2FnZSBtZW1iZXJzCisgICAgICAgIGNv
cnJlY3RseS4gSSBzdXNwZWN0IHRoaXMgd2FzIHRoZSBjYXVzZSBvZiA8cmRhcjovL3Byb2JsZW0v
NDQyOTE5MjA+IGJlY2F1c2UKKyAgICAgICAgQ29ubmVjdGlvbjo6c2VuZE91dGdvaW5nTWVzc2Fn
ZSgpIHdvdWxkIGZhaWwgdG8gaW5pdGlhbGl6ZSBoZWFkZXItPm1zZ2hfdm91Y2hlcl9wb3J0Cisg
ICAgICAgIGFuZCB0aGUgTWFjaE1lc3NhZ2UgZGVzdHJ1Y3RvciB3b3VsZCB0aGVuIGNhbGwgbWFj
aF9tc2dfZGVzdHJveShoZWFkZXIoKSksIHdoaWNoCisgICAgICAgIHdvdWxkIG1hY2hfbXNnX2Rl
c3Ryb3lfcG9ydChoZWFkZXItPm1zZ2hfdm91Y2hlcl9wb3J0KS4KKworICAgICAgICAoSVBDOjpN
YWNoTWVzc2FnZTo6TWFjaE1lc3NhZ2UpOgorICAgICAgICBQYXNzIE1lc3NhZ2VSZWNlaXZlck5h
bWUgLyBNZXNzYWdlTmFtZSB3aGVuIGNvbnN0cnVjdGluZyB0aGUgTWFjaE1lc3NhZ2UgcmF0aGVy
CisgICAgICAgIHRoYW4gc2V0dGluZyB0aGVtIGFmdGVyd2FyZHMgc2luY2UgdGhleSBuZXZlciBj
aGFuZ2UgZm9yIGEgZ2l2ZW4gTWFjaE1lc3NhZ2UuCisKKyAgICAgICAgKElQQzo6TWFjaE1lc3Nh
Z2U6Om1lc3NhZ2VTaXplKToKKyAgICAgICAgRHJvcCBpZiBjaGVja3MgZm9yIHBvcnREZXNjcmlw
dG9yQ291bnQgYW5kIG1lbW9yeURlc2NyaXB0b3JDb3VudCBzaW5jZSB0aGUgbG9naWMKKyAgICAg
ICAgd2lsbCBkbyB0aGUgcmlnaHQgdGhpbmcgZXZlbiBpZiB0aGV5IGFyZSAwLgorCisgICAgICAg
ICogUGxhdGZvcm0vSVBDL21hYy9NYWNoTWVzc2FnZS5oOgorICAgICAgICAoSVBDOjpNYWNoTWVz
c2FnZTo6aGVhZGVyKToKKyAgICAgICAgKElQQzo6TWFjaE1lc3NhZ2U6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUgY29uc3QpOgorICAgICAgICAoSVBDOjpNYWNoTWVzc2FnZTo6bWVzc2FnZU5hbWUgY29u
c3QpOgorCiAyMDE5LTA0LTI1ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5j
b20+CiAKICAgICAgICAgW2lPU10gQWRkIGludGVybmFsIHNldHRpbmcgdG8gZm9yY2UgLXdlYmtp
dC10ZXh0LXNpemUtYWRqdXN0IHRvICJhdXRvIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9JUEMvbWFjL0Nvbm5lY3Rpb25NYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L0lQQy9tYWMvQ29ubmVjdGlvbk1hYy5tbQppbmRleCBkOTQxOTNlNTlhOTlmMWUxNGMxYzI3N2Zi
MzIyZjI2NjQ3NzMzZDlkLi40NGFmNzRmZTEzNDUxZjY5MmU5ZjliZTFhZTQ5ZjJhNWFhYmMwMDM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9tYWMvQ29ubmVjdGlvbk1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9tYWMvQ29ubmVjdGlvbk1hYy5t
bQpAQCAtNzAsNyArNzAsNyBAQCBleHRlcm4gIkMiIEFYRXJyb3IgX0FYVUlFbGVtZW50Tm90aWZ5
UHJvY2Vzc1N1c3BlbmRTdGF0dXMoQVhTdXNwZW5kU3RhdHVzKTsKIAogbmFtZXNwYWNlIElQQyB7
CiAKLXN0YXRpYyBjb25zdCBzaXplX3QgaW5saW5lTWVzc2FnZU1heFNpemUgPSA0MDk2Oworc3Rh
dGljIGNvbnN0IHNpemVfdCBpbmxpbmVNZXNzYWdlTWF4U2l6ZSA9IFBBR0VfU0laRTsKIAogLy8g
QXJiaXRyYXJ5IG1lc3NhZ2UgSURzIHRoYXQgZG8gbm90IGNvbGxpZGUgd2l0aCBNYWNoIG5vdGlm
aWNhdGlvbiBtZXNzYWdlcyAodXNlZCBteSBpbml0aWFscykuCiBjb25zdGV4cHIgbWFjaF9tc2df
aWRfdCBpbmxpbmVCb2R5TWVzc2FnZUlEID0gMHhkYmEwZGJhOwpAQCAtMzA2LDE2ICszMDYsMTQg
QEAgYm9vbCBDb25uZWN0aW9uOjpzZW5kT3V0Z29pbmdNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxF
bmNvZGVyPiBlbmNvZGVyKQogICAgICAgICBtZXNzYWdlU2l6ZSA9IE1hY2hNZXNzYWdlOjptZXNz
YWdlU2l6ZSgwLCBudW1iZXJPZlBvcnREZXNjcmlwdG9ycywgbWVzc2FnZUJvZHlJc09PTCk7CiAg
ICAgfQogCi0gICAgYXV0byBtZXNzYWdlID0gTWFjaE1lc3NhZ2U6OmNyZWF0ZShtZXNzYWdlU2l6
ZSk7Ci0gICAgbWVzc2FnZS0+c2V0TWVzc2FnZVJlY2VpdmVyTmFtZShlbmNvZGVyLT5tZXNzYWdl
UmVjZWl2ZXJOYW1lKCkudG9TdHJpbmcoKSk7Ci0gICAgbWVzc2FnZS0+c2V0TWVzc2FnZU5hbWUo
ZW5jb2Rlci0+bWVzc2FnZU5hbWUoKS50b1N0cmluZygpKTsKKyAgICBhdXRvIG1lc3NhZ2UgPSBN
YWNoTWVzc2FnZTo6Y3JlYXRlKGVuY29kZXItPm1lc3NhZ2VSZWNlaXZlck5hbWUoKS50b1N0cmlu
ZygpLCBlbmNvZGVyLT5tZXNzYWdlTmFtZSgpLnRvU3RyaW5nKCksIG1lc3NhZ2VTaXplKTsKIAog
ICAgIGF1dG8qIGhlYWRlciA9IG1lc3NhZ2UtPmhlYWRlcigpOwogICAgIGhlYWRlci0+bXNnaF9i
aXRzID0gTUFDSF9NU0dIX0JJVFMoTUFDSF9NU0dfVFlQRV9DT1BZX1NFTkQsIDApOwogICAgIGhl
YWRlci0+bXNnaF9zaXplID0gbWVzc2FnZVNpemU7CiAgICAgaGVhZGVyLT5tc2doX3JlbW90ZV9w
b3J0ID0gbV9zZW5kUG9ydDsKICAgICBoZWFkZXItPm1zZ2hfbG9jYWxfcG9ydCA9IE1BQ0hfUE9S
VF9OVUxMOwotICAgIGhlYWRlci0+bXNnaF9pZCA9IGlubGluZUJvZHlNZXNzYWdlSUQ7CisgICAg
aGVhZGVyLT5tc2doX2lkID0gbWVzc2FnZUJvZHlJc09PTCA/IG91dE9mTGluZUJvZHlNZXNzYWdl
SUQgOiBpbmxpbmVCb2R5TWVzc2FnZUlEOwogCiAgICAgYXV0byogbWVzc2FnZURhdGEgPSByZWlu
dGVycHJldF9jYXN0PHVpbnQ4X3QqPihoZWFkZXIgKyAxKTsKIApAQCAtMzI3LDE0ICszMjUsMTQg
QEAgYm9vbCBDb25uZWN0aW9uOjpzZW5kT3V0Z29pbmdNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxF
bmNvZGVyPiBlbmNvZGVyKQogICAgICAgICBib2R5LT5tc2doX2Rlc2NyaXB0b3JfY291bnQgPSBu
dW1iZXJPZlBvcnREZXNjcmlwdG9ycyArIG1lc3NhZ2VCb2R5SXNPT0w7CiAgICAgICAgIG1lc3Nh
Z2VEYXRhID0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oYm9keSArIDEpOwogCi0gICAgICAg
IGF1dG8gZ2V0RGVzY3JpcHRvckFuZFNraXAgPSBbXSh1aW50OF90KiYgZGF0YSkgewotICAgICAg
ICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8bWFjaF9tc2dfZGVzY3JpcHRvcl90Kj4oc3Rk
OjpleGNoYW5nZShkYXRhLCBkYXRhICsgc2l6ZW9mKG1hY2hfbXNnX3BvcnRfZGVzY3JpcHRvcl90
KSkpOworICAgICAgICBhdXRvIGdldERlc2NyaXB0b3JBbmRBZHZhbmNlID0gW10odWludDhfdCom
IGRhdGEsIHN0ZDo6c2l6ZV90IHRvQWR2YW5jZSkgeworICAgICAgICAgICAgcmV0dXJuIHJlaW50
ZXJwcmV0X2Nhc3Q8bWFjaF9tc2dfZGVzY3JpcHRvcl90Kj4oc3RkOjpleGNoYW5nZShkYXRhLCBk
YXRhICsgdG9BZHZhbmNlKSk7CiAgICAgICAgIH07CiAKICAgICAgICAgZm9yIChhdXRvJiBhdHRh
Y2htZW50IDogYXR0YWNobWVudHMpIHsKICAgICAgICAgICAgIEFTU0VSVChhdHRhY2htZW50LnR5
cGUoKSA9PSBBdHRhY2htZW50OjpNYWNoUG9ydFR5cGUpOwogICAgICAgICAgICAgaWYgKGF0dGFj
aG1lbnQudHlwZSgpID09IEF0dGFjaG1lbnQ6Ok1hY2hQb3J0VHlwZSkgewotICAgICAgICAgICAg
ICAgIGF1dG8qIGRlc2NyaXB0b3IgPSBnZXREZXNjcmlwdG9yQW5kU2tpcChtZXNzYWdlRGF0YSk7
CisgICAgICAgICAgICAgICAgYXV0byogZGVzY3JpcHRvciA9IGdldERlc2NyaXB0b3JBbmRBZHZh
bmNlKG1lc3NhZ2VEYXRhLCBzaXplb2YobWFjaF9tc2dfcG9ydF9kZXNjcmlwdG9yX3QpKTsKICAg
ICAgICAgICAgICAgICBkZXNjcmlwdG9yLT5wb3J0Lm5hbWUgPSBhdHRhY2htZW50LnBvcnQoKTsK
ICAgICAgICAgICAgICAgICBkZXNjcmlwdG9yLT5wb3J0LmRpc3Bvc2l0aW9uID0gYXR0YWNobWVu
dC5kaXNwb3NpdGlvbigpOwogICAgICAgICAgICAgICAgIGRlc2NyaXB0b3ItPnBvcnQudHlwZSA9
IE1BQ0hfTVNHX1BPUlRfREVTQ1JJUFRPUjsKQEAgLTM0Miw5ICszNDAsNyBAQCBib29sIENvbm5l
Y3Rpb246OnNlbmRPdXRnb2luZ01lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPEVuY29kZXI+IGVuY29k
ZXIpCiAgICAgICAgIH0KIAogICAgICAgICBpZiAobWVzc2FnZUJvZHlJc09PTCkgewotICAgICAg
ICAgICAgaGVhZGVyLT5tc2doX2lkID0gb3V0T2ZMaW5lQm9keU1lc3NhZ2VJRDsKLQotICAgICAg
ICAgICAgYXV0byogZGVzY3JpcHRvciA9IGdldERlc2NyaXB0b3JBbmRTa2lwKG1lc3NhZ2VEYXRh
KTsKKyAgICAgICAgICAgIGF1dG8qIGRlc2NyaXB0b3IgPSBnZXREZXNjcmlwdG9yQW5kQWR2YW5j
ZShtZXNzYWdlRGF0YSwgc2l6ZW9mKG1hY2hfbXNnX29vbF9kZXNjcmlwdG9yX3QpKTsKICAgICAg
ICAgICAgIGRlc2NyaXB0b3ItPm91dF9vZl9saW5lLmFkZHJlc3MgPSBlbmNvZGVyLT5idWZmZXIo
KTsKICAgICAgICAgICAgIGRlc2NyaXB0b3ItPm91dF9vZl9saW5lLnNpemUgPSBlbmNvZGVyLT5i
dWZmZXJTaXplKCk7CiAgICAgICAgICAgICBkZXNjcmlwdG9yLT5vdXRfb2ZfbGluZS5jb3B5ID0g
TUFDSF9NU0dfVklSVFVBTF9DT1BZOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9JUEMvbWFjL01hY2hNZXNzYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL21h
Yy9NYWNoTWVzc2FnZS5jcHAKaW5kZXggNjRlYTZiOTZkZTM4MjgyYzJhNzkyNTc0NjliMzZmMmE4
MDgxMDAyYi4uZWM4NGM5NmExMzlhZjgwNWYxM2YwN2FjN2NiZTAyNGIwZjUzZGEyMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvbWFjL01hY2hNZXNzYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9tYWMvTWFjaE1lc3NhZ2UuY3BwCkBAIC0zMiwx
NSArMzIsMTYgQEAKIAogbmFtZXNwYWNlIElQQyB7CiAKLXN0ZDo6dW5pcXVlX3B0cjxNYWNoTWVz
c2FnZT4gTWFjaE1lc3NhZ2U6OmNyZWF0ZShzaXplX3Qgc2l6ZSkKK3N0ZDo6dW5pcXVlX3B0cjxN
YWNoTWVzc2FnZT4gTWFjaE1lc3NhZ2U6OmNyZWF0ZShDU3RyaW5nJiYgbWVzc2FnZVJlY2VpdmVy
TmFtZSwgQ1N0cmluZyYmIG1lc3NhZ2VOYW1lLCBzaXplX3Qgc2l6ZSkKIHsKLSAgICB2b2lkKiBt
ZW1vcnkgPSBXVEY6OmZhc3RNYWxsb2Moc2l6ZW9mKE1hY2hNZXNzYWdlKSArIHNpemUpOwotICAg
IHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8TWFjaE1lc3NhZ2U+IHsgbmV3IChOb3ROdWxsLCBtZW1v
cnkpIE1hY2hNZXNzYWdlIHsgc2l6ZSB9IH07CisgICAgdm9pZCogbWVtb3J5ID0gV1RGOjpmYXN0
WmVyb2VkTWFsbG9jKHNpemVvZihNYWNoTWVzc2FnZSkgKyBzaXplKTsKKyAgICByZXR1cm4gc3Rk
Ojp1bmlxdWVfcHRyPE1hY2hNZXNzYWdlPiB7IG5ldyAoTm90TnVsbCwgbWVtb3J5KSBNYWNoTWVz
c2FnZSB7IFdURk1vdmUobWVzc2FnZVJlY2VpdmVyTmFtZSksIFdURk1vdmUobWVzc2FnZU5hbWUp
LCBzaXplIH0gfTsKIH0KIAotTWFjaE1lc3NhZ2U6Ok1hY2hNZXNzYWdlKHNpemVfdCBzaXplKQot
ICAgIDogbV9zaXplIHsgc2l6ZSB9Ci0gICAgLCBtX3Nob3VsZEZyZWVEZXNjcmlwdG9ycyB7IHRy
dWUgfQorTWFjaE1lc3NhZ2U6Ok1hY2hNZXNzYWdlKENTdHJpbmcmJiBtZXNzYWdlUmVjZWl2ZXJO
YW1lLCBDU3RyaW5nJiYgbWVzc2FnZU5hbWUsIHNpemVfdCBzaXplKQorICAgIDogbV9tZXNzYWdl
UmVjZWl2ZXJOYW1lKFdURk1vdmUobWVzc2FnZVJlY2VpdmVyTmFtZSkpCisgICAgLCBtX21lc3Nh
Z2VOYW1lKFdURk1vdmUobWVzc2FnZU5hbWUpKQorICAgICwgbV9zaXplIHsgc2l6ZSB9CiB7CiB9
CiAKQEAgLTU2LDIxICs1NywxMyBAQCBzaXplX3QgTWFjaE1lc3NhZ2U6Om1lc3NhZ2VTaXplKHNp
emVfdCBib2R5U2l6ZSwgc2l6ZV90IHBvcnREZXNjcmlwdG9yQ291bnQsIHNpegogCiAgICAgaWYg
KHBvcnREZXNjcmlwdG9yQ291bnQgfHwgbWVtb3J5RGVzY3JpcHRvckNvdW50KSB7CiAgICAgICAg
IG1lc3NhZ2VTaXplICs9IHNpemVvZihtYWNoX21zZ19ib2R5X3QpOwotCi0gICAgICAgIGlmIChw
b3J0RGVzY3JpcHRvckNvdW50KQotICAgICAgICAgICAgbWVzc2FnZVNpemUgKz0gKHBvcnREZXNj
cmlwdG9yQ291bnQgKiBzaXplb2YobWFjaF9tc2dfcG9ydF9kZXNjcmlwdG9yX3QpKTsKLSAgICAg
ICAgaWYgKG1lbW9yeURlc2NyaXB0b3JDb3VudCkKLSAgICAgICAgICAgIG1lc3NhZ2VTaXplICs9
IChtZW1vcnlEZXNjcmlwdG9yQ291bnQgKiBzaXplb2YobWFjaF9tc2dfb29sX2Rlc2NyaXB0b3Jf
dCkpOworICAgICAgICBtZXNzYWdlU2l6ZSArPSAocG9ydERlc2NyaXB0b3JDb3VudCAqIHNpemVv
ZihtYWNoX21zZ19wb3J0X2Rlc2NyaXB0b3JfdCkpOworICAgICAgICBtZXNzYWdlU2l6ZSArPSAo
bWVtb3J5RGVzY3JpcHRvckNvdW50ICogc2l6ZW9mKG1hY2hfbXNnX29vbF9kZXNjcmlwdG9yX3Qp
KTsKICAgICB9CiAKICAgICByZXR1cm4gcm91bmRfbXNnKG1lc3NhZ2VTaXplKTsKIH0KIAotbWFj
aF9tc2dfaGVhZGVyX3QqIE1hY2hNZXNzYWdlOjpoZWFkZXIoKQotewotICAgIHJldHVybiBtX21l
c3NhZ2VIZWFkZXI7Ci19Ci0KIHZvaWQgTWFjaE1lc3NhZ2U6OmxlYWtEZXNjcmlwdG9ycygpCiB7
CiAgICAgbV9zaG91bGRGcmVlRGVzY3JpcHRvcnMgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vSVBDL21hYy9NYWNoTWVzc2FnZS5oIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9JUEMvbWFjL01hY2hNZXNzYWdlLmgKaW5kZXggOWE0MTE1ZWViMGY0ZjM4MzRlYjg0
MmMzOGRkMzk2NDhlNDMxMTQ4Mi4uZDAxMzFjN2YwZDNlZmEzOGFmNDA1NGUyNzZkNGZjMjg2Yzkz
NDQyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvbWFjL01hY2hNZXNz
YWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvbWFjL01hY2hNZXNzYWdlLmgK
QEAgLTM2LDMwICszNiwyNyBAQCBuYW1lc3BhY2UgSVBDIHsKIGNsYXNzIE1hY2hNZXNzYWdlIHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPE1hY2hNZXNzYWdlPiBjcmVhdGUoc2l6ZV90KTsKKyAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPE1hY2hNZXNzYWdlPiBjcmVhdGUoQ1N0cmluZyYmIG1lc3NhZ2VSZWNlaXZlck5h
bWUsIENTdHJpbmcmJiBtZXNzYWdlTmFtZSwgc2l6ZV90KTsKICAgICB+TWFjaE1lc3NhZ2UoKTsK
IAogICAgIHN0YXRpYyBzaXplX3QgbWVzc2FnZVNpemUoc2l6ZV90IGJvZHlTaXplLCBzaXplX3Qg
cG9ydERlc2NyaXB0b3JDb3VudCwgc2l6ZV90IG1lbW9yeURlc2NyaXB0b3JDb3VudCk7CiAKICAg
ICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQotICAgIG1hY2hfbXNnX2hl
YWRlcl90KiBoZWFkZXIoKTsKKyAgICBtYWNoX21zZ19oZWFkZXJfdCogaGVhZGVyKCkgeyByZXR1
cm4gbV9tZXNzYWdlSGVhZGVyOyB9CiAKICAgICB2b2lkIGxlYWtEZXNjcmlwdG9ycygpOwogCiAg
ICAgY29uc3QgQ1N0cmluZyYgbWVzc2FnZVJlY2VpdmVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bWVzc2FnZVJlY2VpdmVyTmFtZTsgfQotICAgIHZvaWQgc2V0TWVzc2FnZVJlY2VpdmVyTmFtZShD
U3RyaW5nJiYgbWVzc2FnZVJlY2VpdmVyTmFtZSkgeyBtX21lc3NhZ2VSZWNlaXZlck5hbWUgPSBX
VEZNb3ZlKG1lc3NhZ2VSZWNlaXZlck5hbWUpOyB9Ci0KICAgICBjb25zdCBDU3RyaW5nJiBtZXNz
YWdlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVzc2FnZU5hbWU7IH0KLSAgICB2b2lkIHNldE1l
c3NhZ2VOYW1lKENTdHJpbmcmJiBtZXNzYWdlTmFtZSkgeyBtX21lc3NhZ2VOYW1lID0gV1RGTW92
ZShtZXNzYWdlTmFtZSk7IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBNYWNoTWVzc2FnZShz
aXplX3QpOworICAgIE1hY2hNZXNzYWdlKENTdHJpbmcmJiBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBD
U3RyaW5nJiYgbWVzc2FnZU5hbWUsIHNpemVfdCk7CiAKICAgICBDU3RyaW5nIG1fbWVzc2FnZVJl
Y2VpdmVyTmFtZTsKICAgICBDU3RyaW5nIG1fbWVzc2FnZU5hbWU7CiAgICAgc2l6ZV90IG1fc2l6
ZTsKLSAgICBib29sIG1fc2hvdWxkRnJlZURlc2NyaXB0b3JzOwotICAgIG1hY2hfbXNnX2hlYWRl
cl90IG1fbWVzc2FnZUhlYWRlclswXTsKKyAgICBib29sIG1fc2hvdWxkRnJlZURlc2NyaXB0b3Jz
IHsgdHJ1ZSB9OworICAgIG1hY2hfbXNnX2hlYWRlcl90IG1fbWVzc2FnZUhlYWRlcltdOwogfTsK
IAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>368353</attachid>
            <date>2019-04-26 14:50:11 -0700</date>
            <delta_ts>2019-04-27 10:09:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197323-20190426145010.patch</filename>
            <type>text/plain</type>
            <size>9639</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0Njg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBjNjdmNzViMjJkNmExMWU3
ODU4MGYxOWY1N2UzZDMxNjRhMTIwMzguLjJhYjdlZWY2NDlhMGJlYTA4M2ZmZDkyYTAxMGU5MGM1
OWM0Yzg4ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMTktMDQtMjYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBJbXByb3ZlIHNhZmV0eSBvZiBNYWNo
TWVzc2FnZSBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTk3MzIzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NDI5MTkyMD4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXByb3ZlIHNhZmV0eSBv
ZiBNYWNoTWVzc2FnZSBjbGFzcyBhbmQgY2xlYW4gdGhpbmdzIHVwIGEgYml0LgorCisgICAgICAg
ICogUGxhdGZvcm0vSVBDL21hYy9Db25uZWN0aW9uTWFjLm1tOgorICAgICAgICAoSVBDOjpDb25u
ZWN0aW9uOjpzZW5kT3V0Z29pbmdNZXNzYWdlKToKKyAgICAgICAgLSBQYXNzIE1lc3NhZ2VSZWNl
aXZlck5hbWUgLyBNZXNzYWdlTmFtZSB3aGVuIGNvbnN0cnVjdGluZyB0aGUgTWFjaE1lc3NhZ2Ug
cmF0aGVyCisgICAgICAgICAgdGhhbiBzZXR0aW5nIHRoZW0gYWZ0ZXJ3YXJkcyBzaW5jZSB0aGV5
IG5ldmVyIGNoYW5nZSBmb3IgYSBnaXZlbiBNYWNoTWVzc2FnZS4KKyAgICAgICAgLSBTZXQgaGVh
ZGVyLT5tc2doX2lkIHRvIHRoZSByaWdodCB2YWx1ZSByaWdodCBhd2F5IGluc3RlYWQgb2Ygc2V0
dGluZyBpdCBmaXJzdAorICAgICAgICAgIHRvIGlubGluZUJvZHlNZXNzYWdlSUQgYW5kIHRoZW4g
bGF0ZXIgZml4aW5nIGl0IHRvIGJlIG91dE9mTGluZUJvZHlNZXNzYWdlSUQKKyAgICAgICAgICB3
aGVuIHRoZSBib2R5IGlzIG91dCBvZiBsaW5lLgorICAgICAgICAtIFdoZW4gbWVzc2FnZUJvZHlJ
c09PTCB3YXMgdHJ1ZSwgd2Ugd291bGQgY2FsbCBnZXREZXNjcmlwdG9yQW5kU2tpcCgpIHdoaWNo
CisgICAgICAgICAgd291bGQgYWR2YW5jZSB0aGUgcG9pbnRlciBieSBzaXplb2YobWFjaF9tc2df
cG9ydF9kZXNjcmlwdG9yX3QpLCBldmVuIHRob3VnaAorICAgICAgICAgIHRoZSBkZXNjcmlwdG9y
IHR5cGUgaXMgbWFjaF9tc2dfb29sX2Rlc2NyaXB0b3JfdC4gVGhpcyB3b3VsZCBub3QgbWF0dGVy
IGluCisgICAgICAgICAgdGhlIGVuZCBiZWNhdXNlIHdlIHdvdWxkIG5vdCB1c2UgdGhlIG1lc3Nh
Z2VEYXRhIHBvaW50ZXIgYWZ0ZXIgdGhpcyBidXQKKyAgICAgICAgICBzdGlsbC4KKworICAgICAg
ICAqIFBsYXRmb3JtL0lQQy9tYWMvTWFjaE1lc3NhZ2UuY3BwOgorICAgICAgICAoSVBDOjpNYWNo
TWVzc2FnZTo6Y3JlYXRlKToKKyAgICAgICAgVXNlIGZhc3RaZXJvZWRNYWxsb2MoKSBpbnN0ZWFk
IG9mIGZhc3RNYWxsb2MoKSBmb3Igc2FmZXR5LCBnaXZlbiB0aGF0IHRoaXMgY2xhc3MKKyAgICAg
ICAgaGFzIGEgbWFjaF9tc2dfaGVhZGVyX3QgZmxleGlibGUgYXJyYXkgbWVtYmVyLiBUaGlzIGlz
IHdoYXQgaXMgcmVjb21tZW5kZWQgYnkgdGhlCisgICAgICAgIG1hY2ggZG9jdW1lbnRhdGlvbi4g
SXQgaXMgbXVjaCBzYWZlciBiZWNhdXNlIGl0IG90aGVyd2l6ZSByZWxpZXMgb24gdGhlIHVzZXIK
KyAgICAgICAgKENvbm5lY3Rpb246OnNlbmRPdXRnb2luZ01lc3NhZ2UoKSkgdG8gaW5pdGlhbGl6
ZSBBTEwgdGhlIG1lc3NhZ2UgbWVtYmVycworICAgICAgICBjb3JyZWN0bHkuIEkgc3VzcGVjdCB0
aGlzIHdhcyB0aGUgY2F1c2Ugb2YgPHJkYXI6Ly9wcm9ibGVtLzQ0MjkxOTIwPiBiZWNhdXNlCisg
ICAgICAgIENvbm5lY3Rpb246OnNlbmRPdXRnb2luZ01lc3NhZ2UoKSB3b3VsZCBmYWlsIHRvIGlu
aXRpYWxpemUgaGVhZGVyLT5tc2doX3ZvdWNoZXJfcG9ydAorICAgICAgICBhbmQgdGhlIE1hY2hN
ZXNzYWdlIGRlc3RydWN0b3Igd291bGQgdGhlbiBjYWxsIG1hY2hfbXNnX2Rlc3Ryb3koaGVhZGVy
KCkpLCB3aGljaAorICAgICAgICB3b3VsZCBtYWNoX21zZ19kZXN0cm95X3BvcnQoaGVhZGVyLT5t
c2doX3ZvdWNoZXJfcG9ydCkuCisKKyAgICAgICAgKElQQzo6TWFjaE1lc3NhZ2U6Ok1hY2hNZXNz
YWdlKToKKyAgICAgICAgUGFzcyBNZXNzYWdlUmVjZWl2ZXJOYW1lIC8gTWVzc2FnZU5hbWUgd2hl
biBjb25zdHJ1Y3RpbmcgdGhlIE1hY2hNZXNzYWdlIHJhdGhlcgorICAgICAgICB0aGFuIHNldHRp
bmcgdGhlbSBhZnRlcndhcmRzIHNpbmNlIHRoZXkgbmV2ZXIgY2hhbmdlIGZvciBhIGdpdmVuIE1h
Y2hNZXNzYWdlLgorCisgICAgICAgIChJUEM6Ok1hY2hNZXNzYWdlOjptZXNzYWdlU2l6ZSk6Cisg
ICAgICAgIERyb3AgaWYgY2hlY2tzIGZvciBwb3J0RGVzY3JpcHRvckNvdW50IGFuZCBtZW1vcnlE
ZXNjcmlwdG9yQ291bnQgc2luY2UgdGhlIGxvZ2ljCisgICAgICAgIHdpbGwgZG8gdGhlIHJpZ2h0
IHRoaW5nIGV2ZW4gaWYgdGhleSBhcmUgMC4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9tYWMv
TWFjaE1lc3NhZ2UuaDoKKyAgICAgICAgKElQQzo6TWFjaE1lc3NhZ2U6OmhlYWRlcik6CisgICAg
ICAgIChJUEM6Ok1hY2hNZXNzYWdlOjptZXNzYWdlUmVjZWl2ZXJOYW1lIGNvbnN0KToKKyAgICAg
ICAgKElQQzo6TWFjaE1lc3NhZ2U6Om1lc3NhZ2VOYW1lIGNvbnN0KToKKwogMjAxOS0wNC0yNSAg
TXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1Nd
IEFkZCBpbnRlcm5hbCBzZXR0aW5nIHRvIGZvcmNlIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdCB0
byAiYXV0byIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL21hYy9Db25u
ZWN0aW9uTWFjLm1tIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvbWFjL0Nvbm5lY3Rpb25N
YWMubW0KaW5kZXggZDk0MTkzZTU5YTk5ZjFlMTRjMWMyNzdmYjMyMmYyNjY0NzczM2Q5ZC4uZGM1
ZjExYzBjYWNkOWE3ZDg3Mjk4ODYyNGNiMjk0NTMwMTMyMzViYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvbWFjL0Nvbm5lY3Rpb25NYWMubW0KKysrIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9JUEMvbWFjL0Nvbm5lY3Rpb25NYWMubW0KQEAgLTMwNiwxNiArMzA2LDE0
IEBAIGJvb2wgQ29ubmVjdGlvbjo6c2VuZE91dGdvaW5nTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8
RW5jb2Rlcj4gZW5jb2RlcikKICAgICAgICAgbWVzc2FnZVNpemUgPSBNYWNoTWVzc2FnZTo6bWVz
c2FnZVNpemUoMCwgbnVtYmVyT2ZQb3J0RGVzY3JpcHRvcnMsIG1lc3NhZ2VCb2R5SXNPT0wpOwog
ICAgIH0KIAotICAgIGF1dG8gbWVzc2FnZSA9IE1hY2hNZXNzYWdlOjpjcmVhdGUobWVzc2FnZVNp
emUpOwotICAgIG1lc3NhZ2UtPnNldE1lc3NhZ2VSZWNlaXZlck5hbWUoZW5jb2Rlci0+bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpLnRvU3RyaW5nKCkpOwotICAgIG1lc3NhZ2UtPnNldE1lc3NhZ2VOYW1l
KGVuY29kZXItPm1lc3NhZ2VOYW1lKCkudG9TdHJpbmcoKSk7CisgICAgYXV0byBtZXNzYWdlID0g
TWFjaE1lc3NhZ2U6OmNyZWF0ZShlbmNvZGVyLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkudG9TdHJp
bmcoKSwgZW5jb2Rlci0+bWVzc2FnZU5hbWUoKS50b1N0cmluZygpLCBtZXNzYWdlU2l6ZSk7CiAK
ICAgICBhdXRvKiBoZWFkZXIgPSBtZXNzYWdlLT5oZWFkZXIoKTsKICAgICBoZWFkZXItPm1zZ2hf
Yml0cyA9IE1BQ0hfTVNHSF9CSVRTKE1BQ0hfTVNHX1RZUEVfQ09QWV9TRU5ELCAwKTsKICAgICBo
ZWFkZXItPm1zZ2hfc2l6ZSA9IG1lc3NhZ2VTaXplOwogICAgIGhlYWRlci0+bXNnaF9yZW1vdGVf
cG9ydCA9IG1fc2VuZFBvcnQ7CiAgICAgaGVhZGVyLT5tc2doX2xvY2FsX3BvcnQgPSBNQUNIX1BP
UlRfTlVMTDsKLSAgICBoZWFkZXItPm1zZ2hfaWQgPSBpbmxpbmVCb2R5TWVzc2FnZUlEOworICAg
IGhlYWRlci0+bXNnaF9pZCA9IG1lc3NhZ2VCb2R5SXNPT0wgPyBvdXRPZkxpbmVCb2R5TWVzc2Fn
ZUlEIDogaW5saW5lQm9keU1lc3NhZ2VJRDsKIAogICAgIGF1dG8qIG1lc3NhZ2VEYXRhID0gcmVp
bnRlcnByZXRfY2FzdDx1aW50OF90Kj4oaGVhZGVyICsgMSk7CiAKQEAgLTMyNywxNCArMzI1LDE0
IEBAIGJvb2wgQ29ubmVjdGlvbjo6c2VuZE91dGdvaW5nTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8
RW5jb2Rlcj4gZW5jb2RlcikKICAgICAgICAgYm9keS0+bXNnaF9kZXNjcmlwdG9yX2NvdW50ID0g
bnVtYmVyT2ZQb3J0RGVzY3JpcHRvcnMgKyBtZXNzYWdlQm9keUlzT09MOwogICAgICAgICBtZXNz
YWdlRGF0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGJvZHkgKyAxKTsKIAotICAgICAg
ICBhdXRvIGdldERlc2NyaXB0b3JBbmRTa2lwID0gW10odWludDhfdComIGRhdGEpIHsKLSAgICAg
ICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PG1hY2hfbXNnX2Rlc2NyaXB0b3JfdCo+KHN0
ZDo6ZXhjaGFuZ2UoZGF0YSwgZGF0YSArIHNpemVvZihtYWNoX21zZ19wb3J0X2Rlc2NyaXB0b3Jf
dCkpKTsKKyAgICAgICAgYXV0byBnZXREZXNjcmlwdG9yQW5kQWR2YW5jZSA9IFtdKHVpbnQ4X3Qq
JiBkYXRhLCBzdGQ6OnNpemVfdCB0b0FkdmFuY2UpIHsKKyAgICAgICAgICAgIHJldHVybiByZWlu
dGVycHJldF9jYXN0PG1hY2hfbXNnX2Rlc2NyaXB0b3JfdCo+KHN0ZDo6ZXhjaGFuZ2UoZGF0YSwg
ZGF0YSArIHRvQWR2YW5jZSkpOwogICAgICAgICB9OwogCiAgICAgICAgIGZvciAoYXV0byYgYXR0
YWNobWVudCA6IGF0dGFjaG1lbnRzKSB7CiAgICAgICAgICAgICBBU1NFUlQoYXR0YWNobWVudC50
eXBlKCkgPT0gQXR0YWNobWVudDo6TWFjaFBvcnRUeXBlKTsKICAgICAgICAgICAgIGlmIChhdHRh
Y2htZW50LnR5cGUoKSA9PSBBdHRhY2htZW50OjpNYWNoUG9ydFR5cGUpIHsKLSAgICAgICAgICAg
ICAgICBhdXRvKiBkZXNjcmlwdG9yID0gZ2V0RGVzY3JpcHRvckFuZFNraXAobWVzc2FnZURhdGEp
OworICAgICAgICAgICAgICAgIGF1dG8qIGRlc2NyaXB0b3IgPSBnZXREZXNjcmlwdG9yQW5kQWR2
YW5jZShtZXNzYWdlRGF0YSwgc2l6ZW9mKG1hY2hfbXNnX3BvcnRfZGVzY3JpcHRvcl90KSk7CiAg
ICAgICAgICAgICAgICAgZGVzY3JpcHRvci0+cG9ydC5uYW1lID0gYXR0YWNobWVudC5wb3J0KCk7
CiAgICAgICAgICAgICAgICAgZGVzY3JpcHRvci0+cG9ydC5kaXNwb3NpdGlvbiA9IGF0dGFjaG1l
bnQuZGlzcG9zaXRpb24oKTsKICAgICAgICAgICAgICAgICBkZXNjcmlwdG9yLT5wb3J0LnR5cGUg
PSBNQUNIX01TR19QT1JUX0RFU0NSSVBUT1I7CkBAIC0zNDIsOSArMzQwLDcgQEAgYm9vbCBDb25u
ZWN0aW9uOjpzZW5kT3V0Z29pbmdNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxFbmNvZGVyPiBlbmNv
ZGVyKQogICAgICAgICB9CiAKICAgICAgICAgaWYgKG1lc3NhZ2VCb2R5SXNPT0wpIHsKLSAgICAg
ICAgICAgIGhlYWRlci0+bXNnaF9pZCA9IG91dE9mTGluZUJvZHlNZXNzYWdlSUQ7Ci0KLSAgICAg
ICAgICAgIGF1dG8qIGRlc2NyaXB0b3IgPSBnZXREZXNjcmlwdG9yQW5kU2tpcChtZXNzYWdlRGF0
YSk7CisgICAgICAgICAgICBhdXRvKiBkZXNjcmlwdG9yID0gZ2V0RGVzY3JpcHRvckFuZEFkdmFu
Y2UobWVzc2FnZURhdGEsIHNpemVvZihtYWNoX21zZ19vb2xfZGVzY3JpcHRvcl90KSk7CiAgICAg
ICAgICAgICBkZXNjcmlwdG9yLT5vdXRfb2ZfbGluZS5hZGRyZXNzID0gZW5jb2Rlci0+YnVmZmVy
KCk7CiAgICAgICAgICAgICBkZXNjcmlwdG9yLT5vdXRfb2ZfbGluZS5zaXplID0gZW5jb2Rlci0+
YnVmZmVyU2l6ZSgpOwogICAgICAgICAgICAgZGVzY3JpcHRvci0+b3V0X29mX2xpbmUuY29weSA9
IE1BQ0hfTVNHX1ZJUlRVQUxfQ09QWTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL21hYy9NYWNoTWVzc2FnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9t
YWMvTWFjaE1lc3NhZ2UuY3BwCmluZGV4IDY0ZWE2Yjk2ZGUzODI4MmMyYTc5MjU3NDY5YjM2ZjJh
ODA4MTAwMmIuLmVjODRjOTZhMTM5YWY4MDVmMTNmMDdhYzdjYmUwMjRiMGY1M2RhMjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL21hYy9NYWNoTWVzc2FnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvbWFjL01hY2hNZXNzYWdlLmNwcApAQCAtMzIs
MTUgKzMyLDE2IEBACiAKIG5hbWVzcGFjZSBJUEMgewogCi1zdGQ6OnVuaXF1ZV9wdHI8TWFjaE1l
c3NhZ2U+IE1hY2hNZXNzYWdlOjpjcmVhdGUoc2l6ZV90IHNpemUpCitzdGQ6OnVuaXF1ZV9wdHI8
TWFjaE1lc3NhZ2U+IE1hY2hNZXNzYWdlOjpjcmVhdGUoQ1N0cmluZyYmIG1lc3NhZ2VSZWNlaXZl
ck5hbWUsIENTdHJpbmcmJiBtZXNzYWdlTmFtZSwgc2l6ZV90IHNpemUpCiB7Ci0gICAgdm9pZCog
bWVtb3J5ID0gV1RGOjpmYXN0TWFsbG9jKHNpemVvZihNYWNoTWVzc2FnZSkgKyBzaXplKTsKLSAg
ICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPE1hY2hNZXNzYWdlPiB7IG5ldyAoTm90TnVsbCwgbWVt
b3J5KSBNYWNoTWVzc2FnZSB7IHNpemUgfSB9OworICAgIHZvaWQqIG1lbW9yeSA9IFdURjo6ZmFz
dFplcm9lZE1hbGxvYyhzaXplb2YoTWFjaE1lc3NhZ2UpICsgc2l6ZSk7CisgICAgcmV0dXJuIHN0
ZDo6dW5pcXVlX3B0cjxNYWNoTWVzc2FnZT4geyBuZXcgKE5vdE51bGwsIG1lbW9yeSkgTWFjaE1l
c3NhZ2UgeyBXVEZNb3ZlKG1lc3NhZ2VSZWNlaXZlck5hbWUpLCBXVEZNb3ZlKG1lc3NhZ2VOYW1l
KSwgc2l6ZSB9IH07CiB9CiAKLU1hY2hNZXNzYWdlOjpNYWNoTWVzc2FnZShzaXplX3Qgc2l6ZSkK
LSAgICA6IG1fc2l6ZSB7IHNpemUgfQotICAgICwgbV9zaG91bGRGcmVlRGVzY3JpcHRvcnMgeyB0
cnVlIH0KK01hY2hNZXNzYWdlOjpNYWNoTWVzc2FnZShDU3RyaW5nJiYgbWVzc2FnZVJlY2VpdmVy
TmFtZSwgQ1N0cmluZyYmIG1lc3NhZ2VOYW1lLCBzaXplX3Qgc2l6ZSkKKyAgICA6IG1fbWVzc2Fn
ZVJlY2VpdmVyTmFtZShXVEZNb3ZlKG1lc3NhZ2VSZWNlaXZlck5hbWUpKQorICAgICwgbV9tZXNz
YWdlTmFtZShXVEZNb3ZlKG1lc3NhZ2VOYW1lKSkKKyAgICAsIG1fc2l6ZSB7IHNpemUgfQogewog
fQogCkBAIC01NiwyMSArNTcsMTMgQEAgc2l6ZV90IE1hY2hNZXNzYWdlOjptZXNzYWdlU2l6ZShz
aXplX3QgYm9keVNpemUsIHNpemVfdCBwb3J0RGVzY3JpcHRvckNvdW50LCBzaXoKIAogICAgIGlm
IChwb3J0RGVzY3JpcHRvckNvdW50IHx8IG1lbW9yeURlc2NyaXB0b3JDb3VudCkgewogICAgICAg
ICBtZXNzYWdlU2l6ZSArPSBzaXplb2YobWFjaF9tc2dfYm9keV90KTsKLQotICAgICAgICBpZiAo
cG9ydERlc2NyaXB0b3JDb3VudCkKLSAgICAgICAgICAgIG1lc3NhZ2VTaXplICs9IChwb3J0RGVz
Y3JpcHRvckNvdW50ICogc2l6ZW9mKG1hY2hfbXNnX3BvcnRfZGVzY3JpcHRvcl90KSk7Ci0gICAg
ICAgIGlmIChtZW1vcnlEZXNjcmlwdG9yQ291bnQpCi0gICAgICAgICAgICBtZXNzYWdlU2l6ZSAr
PSAobWVtb3J5RGVzY3JpcHRvckNvdW50ICogc2l6ZW9mKG1hY2hfbXNnX29vbF9kZXNjcmlwdG9y
X3QpKTsKKyAgICAgICAgbWVzc2FnZVNpemUgKz0gKHBvcnREZXNjcmlwdG9yQ291bnQgKiBzaXpl
b2YobWFjaF9tc2dfcG9ydF9kZXNjcmlwdG9yX3QpKTsKKyAgICAgICAgbWVzc2FnZVNpemUgKz0g
KG1lbW9yeURlc2NyaXB0b3JDb3VudCAqIHNpemVvZihtYWNoX21zZ19vb2xfZGVzY3JpcHRvcl90
KSk7CiAgICAgfQogCiAgICAgcmV0dXJuIHJvdW5kX21zZyhtZXNzYWdlU2l6ZSk7CiB9CiAKLW1h
Y2hfbXNnX2hlYWRlcl90KiBNYWNoTWVzc2FnZTo6aGVhZGVyKCkKLXsKLSAgICByZXR1cm4gbV9t
ZXNzYWdlSGVhZGVyOwotfQotCiB2b2lkIE1hY2hNZXNzYWdlOjpsZWFrRGVzY3JpcHRvcnMoKQog
ewogICAgIG1fc2hvdWxkRnJlZURlc2NyaXB0b3JzID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9tYWMvTWFjaE1lc3NhZ2UuaCBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vSVBDL21hYy9NYWNoTWVzc2FnZS5oCmluZGV4IDlhNDExNWVlYjBmNGYzODM0ZWI4
NDJjMzhkZDM5NjQ4ZTQzMTE0ODIuLmQwMTMxYzdmMGQzZWZhMzhhZjQwNTRlMjc2ZDRmYzI4NmM5
MzQ0MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL21hYy9NYWNoTWVz
c2FnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL21hYy9NYWNoTWVzc2FnZS5o
CkBAIC0zNiwzMCArMzYsMjcgQEAgbmFtZXNwYWNlIElQQyB7CiBjbGFzcyBNYWNoTWVzc2FnZSB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxNYWNoTWVzc2FnZT4gY3JlYXRlKHNpemVfdCk7CisgICAgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxNYWNoTWVzc2FnZT4gY3JlYXRlKENTdHJpbmcmJiBtZXNzYWdlUmVjZWl2ZXJO
YW1lLCBDU3RyaW5nJiYgbWVzc2FnZU5hbWUsIHNpemVfdCk7CiAgICAgfk1hY2hNZXNzYWdlKCk7
CiAKICAgICBzdGF0aWMgc2l6ZV90IG1lc3NhZ2VTaXplKHNpemVfdCBib2R5U2l6ZSwgc2l6ZV90
IHBvcnREZXNjcmlwdG9yQ291bnQsIHNpemVfdCBtZW1vcnlEZXNjcmlwdG9yQ291bnQpOwogCiAg
ICAgc2l6ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KLSAgICBtYWNoX21zZ19o
ZWFkZXJfdCogaGVhZGVyKCk7CisgICAgbWFjaF9tc2dfaGVhZGVyX3QqIGhlYWRlcigpIHsgcmV0
dXJuIG1fbWVzc2FnZUhlYWRlcjsgfQogCiAgICAgdm9pZCBsZWFrRGVzY3JpcHRvcnMoKTsKIAog
ICAgIGNvbnN0IENTdHJpbmcmIG1lc3NhZ2VSZWNlaXZlck5hbWUoKSBjb25zdCB7IHJldHVybiBt
X21lc3NhZ2VSZWNlaXZlck5hbWU7IH0KLSAgICB2b2lkIHNldE1lc3NhZ2VSZWNlaXZlck5hbWUo
Q1N0cmluZyYmIG1lc3NhZ2VSZWNlaXZlck5hbWUpIHsgbV9tZXNzYWdlUmVjZWl2ZXJOYW1lID0g
V1RGTW92ZShtZXNzYWdlUmVjZWl2ZXJOYW1lKTsgfQotCiAgICAgY29uc3QgQ1N0cmluZyYgbWVz
c2FnZU5hbWUoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2VOYW1lOyB9Ci0gICAgdm9pZCBzZXRN
ZXNzYWdlTmFtZShDU3RyaW5nJiYgbWVzc2FnZU5hbWUpIHsgbV9tZXNzYWdlTmFtZSA9IFdURk1v
dmUobWVzc2FnZU5hbWUpOyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgTWFjaE1lc3NhZ2Uo
c2l6ZV90KTsKKyAgICBNYWNoTWVzc2FnZShDU3RyaW5nJiYgbWVzc2FnZVJlY2VpdmVyTmFtZSwg
Q1N0cmluZyYmIG1lc3NhZ2VOYW1lLCBzaXplX3QpOwogCiAgICAgQ1N0cmluZyBtX21lc3NhZ2VS
ZWNlaXZlck5hbWU7CiAgICAgQ1N0cmluZyBtX21lc3NhZ2VOYW1lOwogICAgIHNpemVfdCBtX3Np
emU7Ci0gICAgYm9vbCBtX3Nob3VsZEZyZWVEZXNjcmlwdG9yczsKLSAgICBtYWNoX21zZ19oZWFk
ZXJfdCBtX21lc3NhZ2VIZWFkZXJbMF07CisgICAgYm9vbCBtX3Nob3VsZEZyZWVEZXNjcmlwdG9y
cyB7IHRydWUgfTsKKyAgICBtYWNoX21zZ19oZWFkZXJfdCBtX21lc3NhZ2VIZWFkZXJbXTsKIH07
CiAKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>