<?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>184106</bug_id>
          
          <creation_ts>2018-03-28 12:28:01 -0700</creation_ts>
          <short_desc>Protect against invalid mach ports returned by mach_port_request_notification</short_desc>
          <delta_ts>2018-03-28 14:06:12 -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>WebKit Misc.</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="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>beidson</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>rniwa</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1409968</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-03-28 12:28:01 -0700</bug_when>
    <thetext>If mach_port_request_notification returns an error, the returned previous notification port may be uninitialized. We need to make sure we check error codes returned by this call, and make sure the returned port is always used safely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409969</commentid>
    <comment_count>1</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-03-28 12:28:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/37865316&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409974</commentid>
    <comment_count>2</comment_count>
      <attachid>336693</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-03-28 12:35:30 -0700</bug_when>
    <thetext>Created attachment 336693
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409988</commentid>
    <comment_count>3</comment_count>
      <attachid>336693</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-03-28 12:52:42 -0700</bug_when>
    <thetext>Comment on attachment 336693
Patch

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

&gt; Source/WebKit/Platform/IPC/mac/ConnectionMac.mm:539
&gt; +                // If mach_port_request_notification fails, &apos;previousNotificationPort&apos; will be uninitialized.

I do not get it. previousNotificationPort is initialized to MACH_PORT_NULL before the mach_port_request_notification(). Are we really worried about mach_port_request_notification() failing and STILL setting our previousNotificationPort to something else than MACH_PORT_NULL?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409989</commentid>
    <comment_count>4</comment_count>
      <attachid>336699</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-03-28 12:53:55 -0700</bug_when>
    <thetext>Created attachment 336699
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410008</commentid>
    <comment_count>5</comment_count>
      <attachid>336699</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-03-28 13:10:52 -0700</bug_when>
    <thetext>Comment on attachment 336699
Patch

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

&gt; Source/WebKit/UIProcess/Launcher/mac/ProcessLauncherMac.mm:163
&gt; +    mach_port_t previousNotificationPort = MACH_PORT_NULL;

I understand the need to initialize the variable before the call to mach_port_request_notification().

&gt; Source/WebKit/UIProcess/Launcher/mac/ProcessLauncherMac.mm:170
&gt; +        previousNotificationPort = MACH_PORT_NULL;

I do not understand the need to reset it to NULL if the calls to mach_port_request_notification fails.

if mach_port_request_notification() fails and somehow still sets our previousNotificationPort to something else than NULL. Then why wouldn&apos;t we want to deallocate it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410010</commentid>
    <comment_count>6</comment_count>
      <attachid>336699</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-03-28 13:13:33 -0700</bug_when>
    <thetext>Comment on attachment 336699
Patch

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

&gt;&gt; Source/WebKit/UIProcess/Launcher/mac/ProcessLauncherMac.mm:163
&gt;&gt; +    mach_port_t previousNotificationPort = MACH_PORT_NULL;
&gt; 
&gt; I understand the need to initialize the variable before the call to mach_port_request_notification().

Looking at rdar://problem/37865316, I think this line change should be the only change we need to make. Please let me know why you think the rest is needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410011</commentid>
    <comment_count>7</comment_count>
      <attachid>336699</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-03-28 13:15:28 -0700</bug_when>
    <thetext>Comment on attachment 336699
Patch

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

&gt;&gt;&gt; Source/WebKit/UIProcess/Launcher/mac/ProcessLauncherMac.mm:163
&gt;&gt;&gt; +    mach_port_t previousNotificationPort = MACH_PORT_NULL;
&gt;&gt; 
&gt;&gt; I understand the need to initialize the variable before the call to mach_port_request_notification().
&gt; 
&gt; Looking at rdar://problem/37865316, I think this line change should be the only change we need to make. Please let me know why you think the rest is needed.

To be clear, I am also fine with the extra assertions and the extra LOG_ERROR(). I do not understand resetting previousNotificationPort to MACH_PORT_NULL in case of error though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410018</commentid>
    <comment_count>8</comment_count>
      <attachid>336699</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-03-28 13:20:52 -0700</bug_when>
    <thetext>Comment on attachment 336699
Patch

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

&gt;&gt;&gt;&gt; Source/WebKit/UIProcess/Launcher/mac/ProcessLauncherMac.mm:163
&gt;&gt;&gt;&gt; +    mach_port_t previousNotificationPort = MACH_PORT_NULL;
&gt;&gt;&gt; 
&gt;&gt;&gt; I understand the need to initialize the variable before the call to mach_port_request_notification().
&gt;&gt; 
&gt;&gt; Looking at rdar://problem/37865316, I think this line change should be the only change we need to make. Please let me know why you think the rest is needed.
&gt; 
&gt; To be clear, I am also fine with the extra assertions and the extra LOG_ERROR(). I do not understand resetting previousNotificationPort to MACH_PORT_NULL in case of error though.

I spoke with an engineer responsible for MiG stuff. He said that it would be unwise, since the contract of &apos;mach_port_request_notification&apos; is meant to imply that you don&apos;t do ANYTHING with the return values if it gives you an error.

So, we definitely don&apos;t want to call &apos;mach_port_deallocate&apos; or something with its output value if it generated an error.

However, previousNotificationPort is never used again in this method, so I&apos;m find removing the assignment.

&gt;&gt; Source/WebKit/UIProcess/Launcher/mac/ProcessLauncherMac.mm:170
&gt;&gt; +        previousNotificationPort = MACH_PORT_NULL;
&gt; 
&gt; I do not understand the need to reset it to NULL if the calls to mach_port_request_notification fails.
&gt; 
&gt; if mach_port_request_notification() fails and somehow still sets our previousNotificationPort to something else than NULL. Then why wouldn&apos;t we want to deallocate it?

We don&apos;t deallocate this port in this method, so I&apos;m fine just removing the assignment here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410025</commentid>
    <comment_count>9</comment_count>
      <attachid>336699</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-03-28 13:30:30 -0700</bug_when>
    <thetext>Comment on attachment 336699
Patch

Ok then,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410033</commentid>
    <comment_count>10</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-03-28 13:43:13 -0700</bug_when>
    <thetext>Committed r230045: &lt;https://trac.webkit.org/changeset/230045&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410045</commentid>
    <comment_count>11</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-03-28 14:06:12 -0700</bug_when>
    <thetext>Follow-up build fix:
Committed r230047: &lt;https://trac.webkit.org/changeset/230047&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336693</attachid>
            <date>2018-03-28 12:35:30 -0700</date>
            <delta_ts>2018-03-28 12:53:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184106-20180328123530.patch</filename>
            <type>text/plain</type>
            <size>9530</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzAwMzkpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE4LTAzLTI4ICBCcmVudCBGdWxn
aGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFByb3RlY3QgYWdhaW5zdCBpbnZh
bGlkIG1hY2ggcG9ydHMgcmV0dXJuZWQgYnkgbWFjaF9wb3J0X3JlcXVlc3Rfbm90aWZpY2F0aW9u
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQxMDYK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM3ODY1MzE2PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaDoK
KyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcjo6SWRlbnRpZmllcik6IFVzZSBk
ZWZhdWx0IGluaXRpYWxpemVyIHN5bnRheC4KKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvbWFjL0Nv
bm5lY3Rpb25NYWMubW06CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246Om9wZW4pOiBEcml2ZS1i
eS1maXg6IEluY2x1ZGUgZm9ybWF0dGVkIG1hY2ggZXJyb3IgbWVzc2FnZSBpbiBsb2dnaW5nLgor
ICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpyZWNlaXZlU291cmNlRXZlbnRIYW5kbGVyKTogQ2hl
Y2sgcmV0dXJuIHZhbHVlIGZyb20gJ21hY2hfcG9ydF9yZXF1ZXN0X25vdGlmaWNhdGlvbicKKyAg
ICAgICAgYW5kIGNsZWFuIHVwIGlmIGl0IGV4cGVyaWVuY2VkIGFuIGVycm9yLgorICAgICAgICAq
IFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgorICAgICAgICAo
V2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOiBEaXR0by4KKwogMjAxOC0w
My0yOCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBb
RXh0cmEgem9vbSBtb2RlXSBNYWtlIGJvb3N0ZWQgdGV4dCBhdXRvc2l6aW5nIHZhbHVlcyBzd2l0
Y2hhYmxlIGF0IHJ1bnRpbWUKSW5kZXg6IFNvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5l
Y3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0
aW9uLmgJKHJldmlzaW9uIDIzMDAzOSkKKysrIFNvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nv
bm5lY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTAtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpCiAgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEgTW9iaWxpdHks
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTcgU29ueSBJ
bnRlcmFjdGl2ZSBFbnRlcnRhaW5tZW50IEluYy4KQEAgLTExNiw3ICsxMTYsNiBAQCBwdWJsaWM6
CiAjZWxpZiBPUyhEQVJXSU4pCiAgICAgc3RydWN0IElkZW50aWZpZXIgewogICAgICAgICBJZGVu
dGlmaWVyKCkKLSAgICAgICAgICAgIDogcG9ydChNQUNIX1BPUlRfTlVMTCkKICAgICAgICAgewog
ICAgICAgICB9CiAKQEAgLTEzMSw3ICsxMzAsNyBAQCBwdWJsaWM6CiAgICAgICAgIHsKICAgICAg
ICAgfQogCi0gICAgICAgIG1hY2hfcG9ydF90IHBvcnQ7CisgICAgICAgIG1hY2hfcG9ydF90IHBv
cnQgeyBNQUNIX1BPUlRfTlVMTCB9OwogICAgICAgICBPU09iamVjdFB0cjx4cGNfY29ubmVjdGlv
bl90PiB4cGNDb25uZWN0aW9uOwogICAgIH07CiAgICAgc3RhdGljIGJvb2wgaWRlbnRpZmllcklz
TnVsbChJZGVudGlmaWVyIGlkZW50aWZpZXIpIHsgcmV0dXJuIGlkZW50aWZpZXIucG9ydCA9PSBN
QUNIX1BPUlRfTlVMTDsgfQpJbmRleDogU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvbWFjL0Nv
bm5lY3Rpb25NYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMv
bWFjL0Nvbm5lY3Rpb25NYWMubW0JKHJldmlzaW9uIDIzMDAzOSkKKysrIFNvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vSVBDL21hYy9Db25uZWN0aW9uTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xODYs
NyArMTg2LDcgQEAgYm9vbCBDb25uZWN0aW9uOjpvcGVuKCkKIAogICAgICAgICBhdXRvIGtyID0g
bWFjaF9wb3J0X2FsbG9jYXRlKG1hY2hfdGFza19zZWxmKCksIE1BQ0hfUE9SVF9SSUdIVF9SRUNF
SVZFLCAmbV9yZWNlaXZlUG9ydCk7CiAgICAgICAgIGlmIChrciAhPSBLRVJOX1NVQ0NFU1MpIHsK
LSAgICAgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IGFsbG9jYXRlIG1hY2ggcG9ydCwgZXJy
b3IgJXgiLCBrcik7CisgICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBhbGxvY2F0ZSBt
YWNoIHBvcnQsIGVycm9yICV4OiAlcyIsIGtyLCBtYWNoX2Vycm9yX3N0cmluZyhrcikpOwogICAg
ICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogI2lmICFQTEFURk9STShXQVRDSE9TKQpAQCAt
NTMzLDcgKzUzMywxMyBAQCB2b2lkIENvbm5lY3Rpb246OnJlY2VpdmVTb3VyY2VFdmVudEhhbmRs
CiAgICAgICAgIAogICAgICAgICBpZiAobV9zZW5kUG9ydCkgewogICAgICAgICAgICAgbWFjaF9w
b3J0X3QgcHJldmlvdXNOb3RpZmljYXRpb25Qb3J0ID0gTUFDSF9QT1JUX05VTEw7Ci0gICAgICAg
ICAgICBtYWNoX3BvcnRfcmVxdWVzdF9ub3RpZmljYXRpb24obWFjaF90YXNrX3NlbGYoKSwgbV9y
ZWNlaXZlUG9ydCwgTUFDSF9OT1RJRllfTk9fU0VOREVSUywgMCwgTUFDSF9QT1JUX05VTEwsIE1B
Q0hfTVNHX1RZUEVfTU9WRV9TRU5EX09OQ0UsICZwcmV2aW91c05vdGlmaWNhdGlvblBvcnQpOwor
ICAgICAgICAgICAgYXV0byBrciA9IG1hY2hfcG9ydF9yZXF1ZXN0X25vdGlmaWNhdGlvbihtYWNo
X3Rhc2tfc2VsZigpLCBtX3JlY2VpdmVQb3J0LCBNQUNIX05PVElGWV9OT19TRU5ERVJTLCAwLCBN
QUNIX1BPUlRfTlVMTCwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkRfT05DRSwgJnByZXZpb3VzTm90
aWZpY2F0aW9uUG9ydCk7CisgICAgICAgICAgICBBU1NFUlQoa3IgPT0gS0VSTl9TVUNDRVNTKTsK
KyAgICAgICAgICAgIGlmIChrciAhPSBLRVJOX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgICAgICAv
LyBJZiBtYWNoX3BvcnRfcmVxdWVzdF9ub3RpZmljYXRpb24gZmFpbHMsICdwcmV2aW91c05vdGlm
aWNhdGlvblBvcnQnIHdpbGwgYmUgdW5pbml0aWFsaXplZC4KKyAgICAgICAgICAgICAgICBMT0df
RVJST1IoIm1hY2hfcG9ydF9yZXF1ZXN0X25vdGlmaWNhdGlvbiBmYWlsZWQ6ICgleCkgJXMiLCBr
ciwgbWFjaF9lcnJvcl9zdHJpbmcoa3IpKTsKKyAgICAgICAgICAgICAgICBwcmV2aW91c05vdGlm
aWNhdGlvblBvcnQgPSBNQUNIX1BPUlRfTlVMTDsKKyAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgaWYgKHByZXZpb3VzTm90aWZpY2F0aW9uUG9ydCAhPSBNQUNIX1BPUlRfTlVMTCkKICAgICAg
ICAgICAgICAgICBtYWNoX3BvcnRfZGVhbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCBwcmV2aW91
c05vdGlmaWNhdGlvblBvcnQpOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNo
ZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCShyZXZpc2lvbiAy
MzAwMzkpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xh
dW5jaGVyTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNTMsMTYgKzE1MywyMiBAQCB2b2lkIFBy
b2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCiAgICAgbWFjaF9wb3J0X3QgbGlzdGVuaW5n
UG9ydCA9IE1BQ0hfUE9SVF9OVUxMOwogICAgIGF1dG8ga3IgPSBtYWNoX3BvcnRfYWxsb2NhdGUo
bWFjaF90YXNrX3NlbGYoKSwgTUFDSF9QT1JUX1JJR0hUX1JFQ0VJVkUsICZsaXN0ZW5pbmdQb3J0
KTsKICAgICBpZiAoa3IgIT0gS0VSTl9TVUNDRVNTKSB7Ci0gICAgICAgIExPR19FUlJPUigiQ291
bGQgbm90IGFsbG9jYXRlIG1hY2ggcG9ydCwgZXJyb3IgJXgiLCBrcik7CisgICAgICAgIExPR19F
UlJPUigiQ291bGQgbm90IGFsbG9jYXRlIG1hY2ggcG9ydCwgZXJyb3IgJXg6ICVzIiwga3IsIG1h
Y2hfZXJyb3Jfc3RyaW5nKGtyKSk7CiAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgLy8g
SW5zZXJ0IGEgc2VuZCByaWdodCBzbyB3ZSBjYW4gc2VuZCB0byBpdC4KICAgICBtYWNoX3BvcnRf
aW5zZXJ0X3JpZ2h0KG1hY2hfdGFza19zZWxmKCksIGxpc3RlbmluZ1BvcnQsIGxpc3RlbmluZ1Bv
cnQsIE1BQ0hfTVNHX1RZUEVfTUFLRV9TRU5EKTsKIAotICAgIG1hY2hfcG9ydF90IHByZXZpb3Vz
Tm90aWZpY2F0aW9uUG9ydDsKLSAgICBtYWNoX3BvcnRfcmVxdWVzdF9ub3RpZmljYXRpb24obWFj
aF90YXNrX3NlbGYoKSwgbGlzdGVuaW5nUG9ydCwgTUFDSF9OT1RJRllfTk9fU0VOREVSUywgMCwg
bGlzdGVuaW5nUG9ydCwgTUFDSF9NU0dfVFlQRV9NQUtFX1NFTkRfT05DRSwgJnByZXZpb3VzTm90
aWZpY2F0aW9uUG9ydCk7CisgICAgbWFjaF9wb3J0X3QgcHJldmlvdXNOb3RpZmljYXRpb25Qb3J0
ID0gTUFDSF9QT1JUX05VTEw7CisgICAgYXV0byBrciA9IG1hY2hfcG9ydF9yZXF1ZXN0X25vdGlm
aWNhdGlvbihtYWNoX3Rhc2tfc2VsZigpLCBsaXN0ZW5pbmdQb3J0LCBNQUNIX05PVElGWV9OT19T
RU5ERVJTLCAwLCBsaXN0ZW5pbmdQb3J0LCBNQUNIX01TR19UWVBFX01BS0VfU0VORF9PTkNFLCAm
cHJldmlvdXNOb3RpZmljYXRpb25Qb3J0KTsKICAgICBBU1NFUlQoIXByZXZpb3VzTm90aWZpY2F0
aW9uUG9ydCk7CisgICAgQVNTRVJUKGtyID09IEtFUk5fU1VDQ0VTUyk7CisgICAgaWYgKGtyICE9
IEtFUk5fU1VDQ0VTUykgeworICAgICAgICAvLyBJZiBtYWNoX3BvcnRfcmVxdWVzdF9ub3RpZmlj
YXRpb24gZmFpbHMsICdwcmV2aW91c05vdGlmaWNhdGlvblBvcnQnIHdpbGwgYmUgdW5pbml0aWFs
aXplZC4KKyAgICAgICAgTE9HX0VSUk9SKCJtYWNoX3BvcnRfcmVxdWVzdF9ub3RpZmljYXRpb24g
ZmFpbGVkOiAoJXgpICVzIiwga3IsIG1hY2hfZXJyb3Jfc3RyaW5nKGtyKSk7CisgICAgICAgIHBy
ZXZpb3VzTm90aWZpY2F0aW9uUG9ydCA9IE1BQ0hfUE9SVF9OVUxMOworICAgIH0KIAogICAgIFN0
cmluZyBjbGllbnRJZGVudGlmaWVyOwogI2lmIFBMQVRGT1JNKE1BQykKSW5kZXg6IFNvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzMDAzOSkKKysrIFNvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE4LTAz
LTI4ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFByb3Rl
Y3QgYWdhaW5zdCBpbnZhbGlkIG1hY2ggcG9ydHMgcmV0dXJuZWQgYnkgbWFjaF9wb3J0X3JlcXVl
c3Rfbm90aWZpY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODQxMDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM3ODY1MzE2PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGx1Z2lucy9Ib3N0
ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBl
UGx1Z2luSG9zdFByb3h5OjpOZXRzY2FwZVBsdWdpbkhvc3RQcm94eSk6IENoZWNrIHJldHVybiB2
YWx1ZSBmcm9tICdtYWNoX3BvcnRfcmVxdWVzdF9ub3RpZmljYXRpb24nCisgICAgICAgIGFuZCBj
bGVhbiB1cCBpZiBpdCBleHBlcmllbmNlZCBhbiBlcnJvci4KKyAgICAgICAgKFdlYktpdDo6TmV0
c2NhcGVQbHVnaW5Ib3N0UHJveHk6OnByb2Nlc3NSZXF1ZXN0cyk6IERyaXZlLWJ5LWZpeDogSW5j
bHVkZSBmb3JtYXR0ZWQgbWFjaCBlcnJvciBtZXNzYWdlIGluIGxvZ2dpbmcuCisKIDIwMTgtMDMt
MjggIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQXZvaWQg
dW5pbml0aWFsaXplZCBtYWNoIHBvcnRzCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Q
bHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQ
cm94eS5tbQkocmV2aXNpb24gMjMwMDM5KQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1
Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0JKHdvcmtpbmcgY29weSkKQEAg
LTExMSwxMCArMTExLDE2IEBAIE5ldHNjYXBlUGx1Z2luSG9zdFByb3h5OjpOZXRzY2FwZVBsdWdp
bkgKICAgICBtX2RlYWROYW1lTm90aWZpY2F0aW9uUG9ydCA9IGFkb3B0Q0YoQ0ZNYWNoUG9ydENy
ZWF0ZSgwLCBkZWFkTmFtZU5vdGlmaWNhdGlvbkNhbGxiYWNrLCAmY29udGV4dCwgMCkpOwogCiAg
ICAgbWFjaF9wb3J0X3QgcHJldmlvdXMgPSBNQUNIX1BPUlRfTlVMTDsKLSAgICBtYWNoX3BvcnRf
cmVxdWVzdF9ub3RpZmljYXRpb24obWFjaF90YXNrX3NlbGYoKSwgcGx1Z2luSG9zdFBvcnQsIE1B
Q0hfTk9USUZZX0RFQURfTkFNRSwgMCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIENGTWFjaFBvcnRHZXRQb3J0KG1fZGVhZE5hbWVOb3RpZmljYXRpb25Qb3J0LmdldCgpKSwg
TUFDSF9NU0dfVFlQRV9NQUtFX1NFTkRfT05DRSwgJnByZXZpb3VzKTsKKyAgICBhdXRvIGtyID0g
bWFjaF9wb3J0X3JlcXVlc3Rfbm90aWZpY2F0aW9uKG1hY2hfdGFza19zZWxmKCksIHBsdWdpbkhv
c3RQb3J0LCBNQUNIX05PVElGWV9ERUFEX05BTUUsIDAsCisgICAgICAgIENGTWFjaFBvcnRHZXRQ
b3J0KG1fZGVhZE5hbWVOb3RpZmljYXRpb25Qb3J0LmdldCgpKSwgTUFDSF9NU0dfVFlQRV9NQUtF
X1NFTkRfT05DRSwgJnByZXZpb3VzKTsKICAgICBBU1NFUlQocHJldmlvdXMgPT0gTUFDSF9QT1JU
X05VTEwpOwotICAgIAorICAgIEFTU0VSVChrciA9PSBLRVJOX1NVQ0NFU1MpOworICAgIGlmIChr
ciAhPSBLRVJOX1NVQ0NFU1MpIHsKKyAgICAgICAgLy8gSWYgbWFjaF9wb3J0X3JlcXVlc3Rfbm90
aWZpY2F0aW9uIGZhaWxzLCAncHJldmlvdXMnIHdpbGwgYmUgdW5pbml0aWFsaXplZC4KKyAgICAg
ICAgTE9HX0VSUk9SKCJtYWNoX3BvcnRfcmVxdWVzdF9ub3RpZmljYXRpb24gZmFpbGVkOiAoJXgp
ICVzIiwga3IsIG1hY2hfZXJyb3Jfc3RyaW5nKGtyKSk7CisgICAgICAgIHByZXZpb3VzID0gTUFD
SF9QT1JUX05VTEw7CisgICAgfQorCiAgICAgUmV0YWluUHRyPENGUnVuTG9vcFNvdXJjZVJlZj4g
ZGVhdGhQb3J0U291cmNlID0gYWRvcHRDRihDRk1hY2hQb3J0Q3JlYXRlUnVuTG9vcFNvdXJjZSgw
LCBtX2RlYWROYW1lTm90aWZpY2F0aW9uUG9ydC5nZXQoKSwgMCkpOwogICAgIAogICAgIENGUnVu
TG9vcEFkZFNvdXJjZShDRlJ1bkxvb3BHZXRDdXJyZW50KCksIGRlYXRoUG9ydFNvdXJjZS5nZXQo
KSwga0NGUnVuTG9vcERlZmF1bHRNb2RlKTsKQEAgLTI4NCw3ICsyOTAsNyBAQCBib29sIE5ldHNj
YXBlUGx1Z2luSG9zdFByb3h5Ojpwcm9jZXNzUmVxCiAgICAgaWYgKCFtX3BvcnRTZXQpIHsKICAg
ICAgICAgYXV0byBrciA9IG1hY2hfcG9ydF9hbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCBNQUNI
X1BPUlRfUklHSFRfUE9SVF9TRVQsICZtX3BvcnRTZXQpOwogICAgICAgICBpZiAoa3IgIT0gS0VS
Tl9TVUNDRVNTKSB7Ci0gICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBhbGxvY2F0ZSBt
YWNoIHBvcnQsIGVycm9yICV4Iiwga3IpOworICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBu
b3QgYWxsb2NhdGUgbWFjaCBwb3J0LCBlcnJvciAleDogJXMiLCBrciwgbWFjaF9lcnJvcl9zdHJp
bmcoa3IpKTsKICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KICAgICAgICAgbWFjaF9w
b3J0X2luc2VydF9tZW1iZXIobWFjaF90YXNrX3NlbGYoKSwgbV9jbGllbnRQb3J0LCBtX3BvcnRT
ZXQpOwpAQCAtMjk4LDcgKzMwNCw3IEBAIGJvb2wgTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHk6OnBy
b2Nlc3NSZXEKICAgICBrZXJuX3JldHVybl90IGtyID0gbWFjaF9tc2cobXNnLCBNQUNIX1JDVl9N
U0csIDAsIHNpemVvZihidWZmZXIpLCBtX3BvcnRTZXQsIDAsIE1BQ0hfUE9SVF9OVUxMKTsKICAg
ICAKICAgICBpZiAoa3IgIT0gS0VSTl9TVUNDRVNTKSB7Ci0gICAgICAgIExPR19FUlJPUigiQ291
bGQgbm90IHJlY2VpdmUgbWFjaCBtZXNzYWdlLCBlcnJvciAleCIsIGtyKTsKKyAgICAgICAgTE9H
X0VSUk9SKCJDb3VsZCBub3QgcmVjZWl2ZSBtYWNoIG1lc3NhZ2UsIGVycm9yICV4OiAlcyIsIGty
LCBtYWNoX2Vycm9yX3N0cmluZyhrcikpOwogICAgICAgICBzX3Byb2Nlc3NpbmdSZXF1ZXN0cy0t
OwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMzExLDcgKzMxNyw3IEBAIGJvb2wg
TmV0c2NhcGVQbHVnaW5Ib3N0UHJveHk6OnByb2Nlc3NSZXEKICAgICAgICAgICAgIGtyID0gbWFj
aF9tc2cocmVwbHlIZWFkZXIsIE1BQ0hfU0VORF9NU0csIHJlcGx5SGVhZGVyLT5tc2doX3NpemUs
IDAsIE1BQ0hfUE9SVF9OVUxMLCAwLCBNQUNIX1BPUlRfTlVMTCk7CiAgICAgICAgICAgICAKICAg
ICAgICAgICAgIGlmIChrciAhPSBLRVJOX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgICAgICBMT0df
RVJST1IoIkNvdWxkIG5vdCBzZW5kIG1hY2ggbWVzc2FnZSwgZXJyb3IgJXgiLCBrcik7CisgICAg
ICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3Qgc2VuZCBtYWNoIG1lc3NhZ2UsIGVycm9y
ICV4OiAlcyIsIGtyLCBtYWNoX2Vycm9yX3N0cmluZyhrcikpOwogICAgICAgICAgICAgICAgIHNf
cHJvY2Vzc2luZ1JlcXVlc3RzLS07CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336699</attachid>
            <date>2018-03-28 12:53:55 -0700</date>
            <delta_ts>2018-03-28 13:30:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184106-20180328125354.patch</filename>
            <type>text/plain</type>
            <size>9530</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzAwMzkpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE4LTAzLTI4ICBCcmVudCBGdWxn
aGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFByb3RlY3QgYWdhaW5zdCBpbnZh
bGlkIG1hY2ggcG9ydHMgcmV0dXJuZWQgYnkgbWFjaF9wb3J0X3JlcXVlc3Rfbm90aWZpY2F0aW9u
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQxMDYK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM3ODY1MzE2PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaDoK
KyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcjo6SWRlbnRpZmllcik6IFVzZSBk
ZWZhdWx0IGluaXRpYWxpemVyIHN5bnRheC4KKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvbWFjL0Nv
bm5lY3Rpb25NYWMubW06CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246Om9wZW4pOiBEcml2ZS1i
eS1maXg6IEluY2x1ZGUgZm9ybWF0dGVkIG1hY2ggZXJyb3IgbWVzc2FnZSBpbiBsb2dnaW5nLgor
ICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpyZWNlaXZlU291cmNlRXZlbnRIYW5kbGVyKTogQ2hl
Y2sgcmV0dXJuIHZhbHVlIGZyb20gJ21hY2hfcG9ydF9yZXF1ZXN0X25vdGlmaWNhdGlvbicKKyAg
ICAgICAgYW5kIGNsZWFuIHVwIGlmIGl0IGV4cGVyaWVuY2VkIGFuIGVycm9yLgorICAgICAgICAq
IFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgorICAgICAgICAo
V2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOiBEaXR0by4KKwogMjAxOC0w
My0yOCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBb
RXh0cmEgem9vbSBtb2RlXSBNYWtlIGJvb3N0ZWQgdGV4dCBhdXRvc2l6aW5nIHZhbHVlcyBzd2l0
Y2hhYmxlIGF0IHJ1bnRpbWUKSW5kZXg6IFNvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5l
Y3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0
aW9uLmgJKHJldmlzaW9uIDIzMDAzOSkKKysrIFNvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nv
bm5lY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTAtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpCiAgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEgTW9iaWxpdHks
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTcgU29ueSBJ
bnRlcmFjdGl2ZSBFbnRlcnRhaW5tZW50IEluYy4KQEAgLTExNiw3ICsxMTYsNiBAQCBwdWJsaWM6
CiAjZWxpZiBPUyhEQVJXSU4pCiAgICAgc3RydWN0IElkZW50aWZpZXIgewogICAgICAgICBJZGVu
dGlmaWVyKCkKLSAgICAgICAgICAgIDogcG9ydChNQUNIX1BPUlRfTlVMTCkKICAgICAgICAgewog
ICAgICAgICB9CiAKQEAgLTEzMSw3ICsxMzAsNyBAQCBwdWJsaWM6CiAgICAgICAgIHsKICAgICAg
ICAgfQogCi0gICAgICAgIG1hY2hfcG9ydF90IHBvcnQ7CisgICAgICAgIG1hY2hfcG9ydF90IHBv
cnQgeyBNQUNIX1BPUlRfTlVMTCB9OwogICAgICAgICBPU09iamVjdFB0cjx4cGNfY29ubmVjdGlv
bl90PiB4cGNDb25uZWN0aW9uOwogICAgIH07CiAgICAgc3RhdGljIGJvb2wgaWRlbnRpZmllcklz
TnVsbChJZGVudGlmaWVyIGlkZW50aWZpZXIpIHsgcmV0dXJuIGlkZW50aWZpZXIucG9ydCA9PSBN
QUNIX1BPUlRfTlVMTDsgfQpJbmRleDogU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvbWFjL0Nv
bm5lY3Rpb25NYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMv
bWFjL0Nvbm5lY3Rpb25NYWMubW0JKHJldmlzaW9uIDIzMDAzOSkKKysrIFNvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vSVBDL21hYy9Db25uZWN0aW9uTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xODYs
NyArMTg2LDcgQEAgYm9vbCBDb25uZWN0aW9uOjpvcGVuKCkKIAogICAgICAgICBhdXRvIGtyID0g
bWFjaF9wb3J0X2FsbG9jYXRlKG1hY2hfdGFza19zZWxmKCksIE1BQ0hfUE9SVF9SSUdIVF9SRUNF
SVZFLCAmbV9yZWNlaXZlUG9ydCk7CiAgICAgICAgIGlmIChrciAhPSBLRVJOX1NVQ0NFU1MpIHsK
LSAgICAgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IGFsbG9jYXRlIG1hY2ggcG9ydCwgZXJy
b3IgJXgiLCBrcik7CisgICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBhbGxvY2F0ZSBt
YWNoIHBvcnQsIGVycm9yICV4OiAlcyIsIGtyLCBtYWNoX2Vycm9yX3N0cmluZyhrcikpOwogICAg
ICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQogI2lmICFQTEFURk9STShXQVRDSE9TKQpAQCAt
NTMzLDcgKzUzMywxMyBAQCB2b2lkIENvbm5lY3Rpb246OnJlY2VpdmVTb3VyY2VFdmVudEhhbmRs
CiAgICAgICAgIAogICAgICAgICBpZiAobV9zZW5kUG9ydCkgewogICAgICAgICAgICAgbWFjaF9w
b3J0X3QgcHJldmlvdXNOb3RpZmljYXRpb25Qb3J0ID0gTUFDSF9QT1JUX05VTEw7Ci0gICAgICAg
ICAgICBtYWNoX3BvcnRfcmVxdWVzdF9ub3RpZmljYXRpb24obWFjaF90YXNrX3NlbGYoKSwgbV9y
ZWNlaXZlUG9ydCwgTUFDSF9OT1RJRllfTk9fU0VOREVSUywgMCwgTUFDSF9QT1JUX05VTEwsIE1B
Q0hfTVNHX1RZUEVfTU9WRV9TRU5EX09OQ0UsICZwcmV2aW91c05vdGlmaWNhdGlvblBvcnQpOwor
ICAgICAgICAgICAgYXV0byBrciA9IG1hY2hfcG9ydF9yZXF1ZXN0X25vdGlmaWNhdGlvbihtYWNo
X3Rhc2tfc2VsZigpLCBtX3JlY2VpdmVQb3J0LCBNQUNIX05PVElGWV9OT19TRU5ERVJTLCAwLCBN
QUNIX1BPUlRfTlVMTCwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkRfT05DRSwgJnByZXZpb3VzTm90
aWZpY2F0aW9uUG9ydCk7CisgICAgICAgICAgICBBU1NFUlQoa3IgPT0gS0VSTl9TVUNDRVNTKTsK
KyAgICAgICAgICAgIGlmIChrciAhPSBLRVJOX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgICAgICAv
LyBJZiBtYWNoX3BvcnRfcmVxdWVzdF9ub3RpZmljYXRpb24gZmFpbHMsICdwcmV2aW91c05vdGlm
aWNhdGlvblBvcnQnIHdpbGwgYmUgdW5pbml0aWFsaXplZC4KKyAgICAgICAgICAgICAgICBMT0df
RVJST1IoIm1hY2hfcG9ydF9yZXF1ZXN0X25vdGlmaWNhdGlvbiBmYWlsZWQ6ICgleCkgJXMiLCBr
ciwgbWFjaF9lcnJvcl9zdHJpbmcoa3IpKTsKKyAgICAgICAgICAgICAgICBwcmV2aW91c05vdGlm
aWNhdGlvblBvcnQgPSBNQUNIX1BPUlRfTlVMTDsKKyAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgaWYgKHByZXZpb3VzTm90aWZpY2F0aW9uUG9ydCAhPSBNQUNIX1BPUlRfTlVMTCkKICAgICAg
ICAgICAgICAgICBtYWNoX3BvcnRfZGVhbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCBwcmV2aW91
c05vdGlmaWNhdGlvblBvcnQpOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNo
ZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCShyZXZpc2lvbiAy
MzAwMzkpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xh
dW5jaGVyTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNTMsMTYgKzE1MywyMiBAQCB2b2lkIFBy
b2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCiAgICAgbWFjaF9wb3J0X3QgbGlzdGVuaW5n
UG9ydCA9IE1BQ0hfUE9SVF9OVUxMOwogICAgIGF1dG8ga3IgPSBtYWNoX3BvcnRfYWxsb2NhdGUo
bWFjaF90YXNrX3NlbGYoKSwgTUFDSF9QT1JUX1JJR0hUX1JFQ0VJVkUsICZsaXN0ZW5pbmdQb3J0
KTsKICAgICBpZiAoa3IgIT0gS0VSTl9TVUNDRVNTKSB7Ci0gICAgICAgIExPR19FUlJPUigiQ291
bGQgbm90IGFsbG9jYXRlIG1hY2ggcG9ydCwgZXJyb3IgJXgiLCBrcik7CisgICAgICAgIExPR19F
UlJPUigiQ291bGQgbm90IGFsbG9jYXRlIG1hY2ggcG9ydCwgZXJyb3IgJXg6ICVzIiwga3IsIG1h
Y2hfZXJyb3Jfc3RyaW5nKGtyKSk7CiAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCiAgICAgLy8g
SW5zZXJ0IGEgc2VuZCByaWdodCBzbyB3ZSBjYW4gc2VuZCB0byBpdC4KICAgICBtYWNoX3BvcnRf
aW5zZXJ0X3JpZ2h0KG1hY2hfdGFza19zZWxmKCksIGxpc3RlbmluZ1BvcnQsIGxpc3RlbmluZ1Bv
cnQsIE1BQ0hfTVNHX1RZUEVfTUFLRV9TRU5EKTsKIAotICAgIG1hY2hfcG9ydF90IHByZXZpb3Vz
Tm90aWZpY2F0aW9uUG9ydDsKLSAgICBtYWNoX3BvcnRfcmVxdWVzdF9ub3RpZmljYXRpb24obWFj
aF90YXNrX3NlbGYoKSwgbGlzdGVuaW5nUG9ydCwgTUFDSF9OT1RJRllfTk9fU0VOREVSUywgMCwg
bGlzdGVuaW5nUG9ydCwgTUFDSF9NU0dfVFlQRV9NQUtFX1NFTkRfT05DRSwgJnByZXZpb3VzTm90
aWZpY2F0aW9uUG9ydCk7CisgICAgbWFjaF9wb3J0X3QgcHJldmlvdXNOb3RpZmljYXRpb25Qb3J0
ID0gTUFDSF9QT1JUX05VTEw7CisgICAgYXV0byBtYyA9IG1hY2hfcG9ydF9yZXF1ZXN0X25vdGlm
aWNhdGlvbihtYWNoX3Rhc2tfc2VsZigpLCBsaXN0ZW5pbmdQb3J0LCBNQUNIX05PVElGWV9OT19T
RU5ERVJTLCAwLCBsaXN0ZW5pbmdQb3J0LCBNQUNIX01TR19UWVBFX01BS0VfU0VORF9PTkNFLCAm
cHJldmlvdXNOb3RpZmljYXRpb25Qb3J0KTsKICAgICBBU1NFUlQoIXByZXZpb3VzTm90aWZpY2F0
aW9uUG9ydCk7CisgICAgQVNTRVJUKG1jID09IEtFUk5fU1VDQ0VTUyk7CisgICAgaWYgKG1jICE9
IEtFUk5fU1VDQ0VTUykgeworICAgICAgICAvLyBJZiBtYWNoX3BvcnRfcmVxdWVzdF9ub3RpZmlj
YXRpb24gZmFpbHMsICdwcmV2aW91c05vdGlmaWNhdGlvblBvcnQnIHdpbGwgYmUgdW5pbml0aWFs
aXplZC4KKyAgICAgICAgTE9HX0VSUk9SKCJtYWNoX3BvcnRfcmVxdWVzdF9ub3RpZmljYXRpb24g
ZmFpbGVkOiAoJXgpICVzIiwgbWMsIG1hY2hfZXJyb3Jfc3RyaW5nKG1jKSk7CisgICAgICAgIHBy
ZXZpb3VzTm90aWZpY2F0aW9uUG9ydCA9IE1BQ0hfUE9SVF9OVUxMOworICAgIH0KIAogICAgIFN0
cmluZyBjbGllbnRJZGVudGlmaWVyOwogI2lmIFBMQVRGT1JNKE1BQykKSW5kZXg6IFNvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzMDAzOSkKKysrIFNvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE4LTAz
LTI4ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFByb3Rl
Y3QgYWdhaW5zdCBpbnZhbGlkIG1hY2ggcG9ydHMgcmV0dXJuZWQgYnkgbWFjaF9wb3J0X3JlcXVl
c3Rfbm90aWZpY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODQxMDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM3ODY1MzE2PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGx1Z2lucy9Ib3N0
ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBl
UGx1Z2luSG9zdFByb3h5OjpOZXRzY2FwZVBsdWdpbkhvc3RQcm94eSk6IENoZWNrIHJldHVybiB2
YWx1ZSBmcm9tICdtYWNoX3BvcnRfcmVxdWVzdF9ub3RpZmljYXRpb24nCisgICAgICAgIGFuZCBj
bGVhbiB1cCBpZiBpdCBleHBlcmllbmNlZCBhbiBlcnJvci4KKyAgICAgICAgKFdlYktpdDo6TmV0
c2NhcGVQbHVnaW5Ib3N0UHJveHk6OnByb2Nlc3NSZXF1ZXN0cyk6IERyaXZlLWJ5LWZpeDogSW5j
bHVkZSBmb3JtYXR0ZWQgbWFjaCBlcnJvciBtZXNzYWdlIGluIGxvZ2dpbmcuCisKIDIwMTgtMDMt
MjggIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQXZvaWQg
dW5pbml0aWFsaXplZCBtYWNoIHBvcnRzCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Q
bHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQ
cm94eS5tbQkocmV2aXNpb24gMjMwMDM5KQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1
Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0JKHdvcmtpbmcgY29weSkKQEAg
LTExMSwxMCArMTExLDE2IEBAIE5ldHNjYXBlUGx1Z2luSG9zdFByb3h5OjpOZXRzY2FwZVBsdWdp
bkgKICAgICBtX2RlYWROYW1lTm90aWZpY2F0aW9uUG9ydCA9IGFkb3B0Q0YoQ0ZNYWNoUG9ydENy
ZWF0ZSgwLCBkZWFkTmFtZU5vdGlmaWNhdGlvbkNhbGxiYWNrLCAmY29udGV4dCwgMCkpOwogCiAg
ICAgbWFjaF9wb3J0X3QgcHJldmlvdXMgPSBNQUNIX1BPUlRfTlVMTDsKLSAgICBtYWNoX3BvcnRf
cmVxdWVzdF9ub3RpZmljYXRpb24obWFjaF90YXNrX3NlbGYoKSwgcGx1Z2luSG9zdFBvcnQsIE1B
Q0hfTk9USUZZX0RFQURfTkFNRSwgMCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIENGTWFjaFBvcnRHZXRQb3J0KG1fZGVhZE5hbWVOb3RpZmljYXRpb25Qb3J0LmdldCgpKSwg
TUFDSF9NU0dfVFlQRV9NQUtFX1NFTkRfT05DRSwgJnByZXZpb3VzKTsKKyAgICBhdXRvIGtyID0g
bWFjaF9wb3J0X3JlcXVlc3Rfbm90aWZpY2F0aW9uKG1hY2hfdGFza19zZWxmKCksIHBsdWdpbkhv
c3RQb3J0LCBNQUNIX05PVElGWV9ERUFEX05BTUUsIDAsCisgICAgICAgIENGTWFjaFBvcnRHZXRQ
b3J0KG1fZGVhZE5hbWVOb3RpZmljYXRpb25Qb3J0LmdldCgpKSwgTUFDSF9NU0dfVFlQRV9NQUtF
X1NFTkRfT05DRSwgJnByZXZpb3VzKTsKICAgICBBU1NFUlQocHJldmlvdXMgPT0gTUFDSF9QT1JU
X05VTEwpOwotICAgIAorICAgIEFTU0VSVChrciA9PSBLRVJOX1NVQ0NFU1MpOworICAgIGlmIChr
ciAhPSBLRVJOX1NVQ0NFU1MpIHsKKyAgICAgICAgLy8gSWYgbWFjaF9wb3J0X3JlcXVlc3Rfbm90
aWZpY2F0aW9uIGZhaWxzLCAncHJldmlvdXMnIHdpbGwgYmUgdW5pbml0aWFsaXplZC4KKyAgICAg
ICAgTE9HX0VSUk9SKCJtYWNoX3BvcnRfcmVxdWVzdF9ub3RpZmljYXRpb24gZmFpbGVkOiAoJXgp
ICVzIiwga3IsIG1hY2hfZXJyb3Jfc3RyaW5nKGtyKSk7CisgICAgICAgIHByZXZpb3VzID0gTUFD
SF9QT1JUX05VTEw7CisgICAgfQorCiAgICAgUmV0YWluUHRyPENGUnVuTG9vcFNvdXJjZVJlZj4g
ZGVhdGhQb3J0U291cmNlID0gYWRvcHRDRihDRk1hY2hQb3J0Q3JlYXRlUnVuTG9vcFNvdXJjZSgw
LCBtX2RlYWROYW1lTm90aWZpY2F0aW9uUG9ydC5nZXQoKSwgMCkpOwogICAgIAogICAgIENGUnVu
TG9vcEFkZFNvdXJjZShDRlJ1bkxvb3BHZXRDdXJyZW50KCksIGRlYXRoUG9ydFNvdXJjZS5nZXQo
KSwga0NGUnVuTG9vcERlZmF1bHRNb2RlKTsKQEAgLTI4NCw3ICsyOTAsNyBAQCBib29sIE5ldHNj
YXBlUGx1Z2luSG9zdFByb3h5Ojpwcm9jZXNzUmVxCiAgICAgaWYgKCFtX3BvcnRTZXQpIHsKICAg
ICAgICAgYXV0byBrciA9IG1hY2hfcG9ydF9hbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCBNQUNI
X1BPUlRfUklHSFRfUE9SVF9TRVQsICZtX3BvcnRTZXQpOwogICAgICAgICBpZiAoa3IgIT0gS0VS
Tl9TVUNDRVNTKSB7Ci0gICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBhbGxvY2F0ZSBt
YWNoIHBvcnQsIGVycm9yICV4Iiwga3IpOworICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBu
b3QgYWxsb2NhdGUgbWFjaCBwb3J0LCBlcnJvciAleDogJXMiLCBrciwgbWFjaF9lcnJvcl9zdHJp
bmcoa3IpKTsKICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgIH0KICAgICAgICAgbWFjaF9w
b3J0X2luc2VydF9tZW1iZXIobWFjaF90YXNrX3NlbGYoKSwgbV9jbGllbnRQb3J0LCBtX3BvcnRT
ZXQpOwpAQCAtMjk4LDcgKzMwNCw3IEBAIGJvb2wgTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHk6OnBy
b2Nlc3NSZXEKICAgICBrZXJuX3JldHVybl90IGtyID0gbWFjaF9tc2cobXNnLCBNQUNIX1JDVl9N
U0csIDAsIHNpemVvZihidWZmZXIpLCBtX3BvcnRTZXQsIDAsIE1BQ0hfUE9SVF9OVUxMKTsKICAg
ICAKICAgICBpZiAoa3IgIT0gS0VSTl9TVUNDRVNTKSB7Ci0gICAgICAgIExPR19FUlJPUigiQ291
bGQgbm90IHJlY2VpdmUgbWFjaCBtZXNzYWdlLCBlcnJvciAleCIsIGtyKTsKKyAgICAgICAgTE9H
X0VSUk9SKCJDb3VsZCBub3QgcmVjZWl2ZSBtYWNoIG1lc3NhZ2UsIGVycm9yICV4OiAlcyIsIGty
LCBtYWNoX2Vycm9yX3N0cmluZyhrcikpOwogICAgICAgICBzX3Byb2Nlc3NpbmdSZXF1ZXN0cy0t
OwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMzExLDcgKzMxNyw3IEBAIGJvb2wg
TmV0c2NhcGVQbHVnaW5Ib3N0UHJveHk6OnByb2Nlc3NSZXEKICAgICAgICAgICAgIGtyID0gbWFj
aF9tc2cocmVwbHlIZWFkZXIsIE1BQ0hfU0VORF9NU0csIHJlcGx5SGVhZGVyLT5tc2doX3NpemUs
IDAsIE1BQ0hfUE9SVF9OVUxMLCAwLCBNQUNIX1BPUlRfTlVMTCk7CiAgICAgICAgICAgICAKICAg
ICAgICAgICAgIGlmIChrciAhPSBLRVJOX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgICAgICBMT0df
RVJST1IoIkNvdWxkIG5vdCBzZW5kIG1hY2ggbWVzc2FnZSwgZXJyb3IgJXgiLCBrcik7CisgICAg
ICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3Qgc2VuZCBtYWNoIG1lc3NhZ2UsIGVycm9y
ICV4OiAlcyIsIGtyLCBtYWNoX2Vycm9yX3N0cmluZyhrcikpOwogICAgICAgICAgICAgICAgIHNf
cHJvY2Vzc2luZ1JlcXVlc3RzLS07CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICAgICAgfQo=
</data>
<flag name="review"
          id="355210"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>