<?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>192805</bug_id>
          
          <creation_ts>2018-12-17 22:59:38 -0800</creation_ts>
          <short_desc>[Win] Fix the wrong return value checking of ScriptItemize in UniscribeController::itemizeShapeAndPlace</short_desc>
          <delta_ts>2020-02-11 19:56:52 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=137526</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Fujii Hironori">fujii</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>koivisto</cc>
    
    <cc>mitz</cc>
    
    <cc>pvollan</cc>
    
    <cc>ross.kirsling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1488810</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-12-17 22:59:38 -0800</bug_when>
    <thetext>[Win] Fix the wrong return value checking of ScriptItemize in UniscribeController::itemizeShapeAndPlace

UniscribeController::itemizeShapeAndPlace has the following code.

&gt;    while (rc = ::ScriptItemize(cp, length, m_items.size() - 1, &amp;m_control, &amp;m_state, m_items.data(), &amp;numItems) == E_OUTOFMEMORY) {
&gt;        m_items.resize(m_items.size() * 2);
&gt;        resetControlAndState();
&gt;    }
&gt;    if (FAILED(rc)) {
&gt;        WTFLogAlways(&quot;UniscribeController::itemizeShapeAndPlace: ScriptItemize failed, rc=%lx&quot;, rc);
&gt;        return;
&gt;    }
&gt;

rc is aligned 0 or 1, and checked by FAILED(rc).
&apos;==&apos; has higher operator precedence than  &apos;=&apos;.
It is interpreted as:

&gt; rc = (::ScriptItemize(...) == E_OUTOFMEMORY)

https://en.cppreference.com/w/cpp/language/operator_precedence

This code has been introduced in Bug 137526.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488816</commentid>
    <comment_count>1</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-12-17 23:09:17 -0800</bug_when>
    <thetext>FAILED macro | Microsoft Docs
https://docs.microsoft.com/en-us/windows/desktop/api/winerror/nf-winerror-failed

&gt; #define FAILED(hr) (((HRESULT)(hr)) &lt; 0)

FAILED(rc) is always false.

ScriptItemize function | Microsoft Docs
https://docs.microsoft.com/en-us/windows/desktop/api/usp10/nf-usp10-scriptitemize

&gt; The function returns E_INVALIDARG if pwcInChars is set to NULL, cInChars is 0, pItems is set to NULL, or cMaxItems &lt; 2.

If I understand the code correctly, ScriptItemize never returns E_INVALIDARG in above code. There is no way to test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488820</commentid>
    <comment_count>2</comment_count>
      <attachid>357542</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-12-17 23:24:43 -0800</bug_when>
    <thetext>Created attachment 357542
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488909</commentid>
    <comment_count>3</comment_count>
      <attachid>357542</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-12-18 09:19:02 -0800</bug_when>
    <thetext>Comment on attachment 357542
Patch

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

The change seems ok.  The log seems problematic.

&gt; Source/WebCore/ChangeLog:22
&gt; +        Fortunately, as far as I understand the code, there is not an
&gt; +        actual problem, and no way to test the coding error.

If this is true we should just remove all this code.

&gt; Source/WebCore/ChangeLog:24
&gt; +        No new tests, no behavior changes.

There is a behavior change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1489226</commentid>
    <comment_count>4</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-12-18 22:57:39 -0800</bug_when>
    <thetext>Do you mean the ScriptItemize can return E_INVALIDARG in the code?

The code has been introduced to resolve static analyzer warnings in Bug 137526.
I guess the resolve static analyzer was not smart enough to know ScriptItemize never return E_INVALIDARG in the condition.
I guess the resolve static analyzer simply reported E_INVALIDARG is not handled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1489228</commentid>
    <comment_count>5</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-12-18 22:59:02 -0800</bug_when>
    <thetext>s/the resolve static analyzer/the static analyzer/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1489232</commentid>
    <comment_count>6</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-12-18 23:13:49 -0800</bug_when>
    <thetext>I think the following condition never be true because ScriptItemize never return E_INVALIDARG in the code.

&gt;    if (FAILED(rc)) {
&gt;        WTFLogAlways(&quot;UniscribeController::itemizeShapeAndPlace: ScriptItemize failed, rc=%lx&quot;, rc);
&gt;        return;
&gt;    }

But, if I remove the above code, the varialbe &apos;rc&apos; become unsued. Then, I need to remove all &apos;rc&apos;.
the static analyzer ends up reporting the warning again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490887</commentid>
    <comment_count>7</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-12-26 23:41:59 -0800</bug_when>
    <thetext>(In reply to Fujii Hironori from comment #6)
&gt; I think the following condition never be true because ScriptItemize never
&gt; return E_INVALIDARG in the code.
&gt; 
&gt; &gt;    if (FAILED(rc)) {
&gt; &gt;        WTFLogAlways(&quot;UniscribeController::itemizeShapeAndPlace: ScriptItemize failed, rc=%lx&quot;, rc);
&gt; &gt;        return;
&gt; &gt;    }
&gt; 
&gt; But, if I remove the above code, the varialbe &apos;rc&apos; become unsued. Then, I
&gt; need to remove all &apos;rc&apos;.
&gt; the static analyzer ends up reporting the warning again.

I&apos;m able to remove the condition by using ASSERT_UNUSED macro.
&gt; ASSERT_UNUSED(rc, SUCCEEDED(rc)); // ScriptItemize never returns E_INVALIDARG.

The benefit of this approach is there would be no behavior change even if ScriptItemize returns E_INVALIDARG in Release build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490888</commentid>
    <comment_count>8</comment_count>
      <attachid>358103</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-12-27 00:22:01 -0800</bug_when>
    <thetext>Created attachment 358103
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490889</commentid>
    <comment_count>9</comment_count>
      <attachid>358104</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-12-27 00:24:05 -0800</bug_when>
    <thetext>Created attachment 358104
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492187</commentid>
    <comment_count>10</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-01-06 19:40:12 -0800</bug_when>
    <thetext>Review, please.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492269</commentid>
    <comment_count>11</comment_count>
      <attachid>358104</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-01-07 08:51:53 -0800</bug_when>
    <thetext>Comment on attachment 358104
Patch

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

&gt; Source/WebCore/platform/graphics/win/UniscribeController.cpp:203
&gt; +    ASSERT_UNUSED(rc, SUCCEEDED(rc)); // ScriptItemize must not return E_INVALIDARG in this code.

I&apos;m afraid I don&apos;t understand the benefit of this change. I know that you found MSDN documentation that claims that ScriptItemize returns E_INVALIDARG in some cases, and is silent about other error conditions. But I don&apos;t think that&apos;s sufficient evidence to assume that ScriptItemize will never return some other error value (or might be modified in the future to do so).

Why not leave this error check in place?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492523</commentid>
    <comment_count>12</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-01-07 18:39:11 -0800</bug_when>
    <thetext>Thank you for the feedback.
Do you prefer the first patch?
I have no preference to both approaches.
I removed the error checking based on Alex&apos;s feedback (Comment 3).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606258</commentid>
    <comment_count>13</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-01-13 22:49:11 -0800</bug_when>
    <thetext>I removed the code in r254323. Closed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357542</attachid>
            <date>2018-12-17 23:24:43 -0800</date>
            <delta_ts>2019-01-07 18:25:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192805-20181218162442.patch</filename>
            <type>text/plain</type>
            <size>2430</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5MzIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjVhNWQ3MTgyZDA3YWZi
YjExYzAwZjE2MjcxZGVhOThjMzJhNGQ0Ni4uMzg0YjhlMmIyMmYzOTRjYjJjYjk5OTU1NmE3YTAy
ZTRiNGZkZmJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE4LTEyLTE3ICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFtXaW5dIEZp
eCB0aGUgd3JvbmcgcmV0dXJuIHZhbHVlIGNoZWNraW5nIG9mIFNjcmlwdEl0ZW1pemUgaW4gVW5p
c2NyaWJlQ29udHJvbGxlcjo6aXRlbWl6ZVNoYXBlQW5kUGxhY2UKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjgwNQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVuaXNjcmliZUNvbnRyb2xsZXI6Oml0ZW1p
emVTaGFwZUFuZFBsYWNlIGhhcyBhIGVycm9yIGNoZWNrIGZvcgorICAgICAgICB0aGUgcmV0dXJu
IHZhbHVlIG9mIFNjcmlwdEl0ZW1pemUuIEJ1dCwgaXQgZGlkbid0IGFjdHVhbGx5IGNoZWNrCisg
ICAgICAgIHRoZSByZXR1cm4gdmFsdWUuCisKKyAgICAgICAgVGhlIGVxdWFsIGNvbXBhcmlzb24g
Jz09JyBoYXMgaGlnaGVyIG9wZXJhdG9yIHByZWNlZGVuY2UgdGhhbiB0aGUKKyAgICAgICAgYXNz
aWdubWVudCAnPScuCisKKyAgICAgICAgMS4gcmMgPSA6OlNjcmlwdEl0ZW1pemUoLi4uKSA9PSBF
X09VVE9GTUVNT1JZCisgICAgICAgIDIuIHJjID0gKDo6U2NyaXB0SXRlbWl6ZSguLi4pID09IEVf
T1VUT0ZNRU1PUlkpCisgICAgICAgIDMuIChyYyA9IDo6U2NyaXB0SXRlbWl6ZSguLi4pKSA9PSBF
X09VVE9GTUVNT1JZCisKKyAgICAgICAgVGh1cywgdGhlIGV4cHJlc3Npb24gIzEgaXMgc2FtZSB3
aXRoICMyLCBub3QgIzMuCisKKyAgICAgICAgRm9ydHVuYXRlbHksIGFzIGZhciBhcyBJIHVuZGVy
c3RhbmQgdGhlIGNvZGUsIHRoZXJlIGlzIG5vdCBhbgorICAgICAgICBhY3R1YWwgcHJvYmxlbSwg
YW5kIG5vIHdheSB0byB0ZXN0IHRoZSBjb2RpbmcgZXJyb3IuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLCBubyBiZWhhdmlvciBjaGFuZ2VzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL1VuaXNjcmliZUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VW5pc2NyaWJl
Q29udHJvbGxlcjo6aXRlbWl6ZVNoYXBlQW5kUGxhY2UpOiBVc2UgcGFyZW50aGVzZXMgdG8gYXNz
aWduICdyYycgdGhlIHJldHVybiBjb2RlLgorCiAyMDE4LTEyLTE3ICBGdWppaSBIaXJvbm9yaSAg
PEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5dW0NsYW5nXSBGaXggY29t
cGlsYXRpb24gd2FybmluZ3MgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcyBkaXJlY3RvcnkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9VbmlzY3JpYmVD
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Vbmlz
Y3JpYmVDb250cm9sbGVyLmNwcAppbmRleCBmZjM3YWM1NmVjMTY4MjVlNjU2MzVjYTA5ZDBiN2Ew
MzE4MGRmOGE0Li5lNzMyZDg2M2EzMTVhYWJhZmQyOTdlMjBiOGZiNjY4ZDI0MTgyNmRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29u
dHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1Vu
aXNjcmliZUNvbnRyb2xsZXIuY3BwCkBAIC0xOTgsNyArMTk4LDcgQEAgdm9pZCBVbmlzY3JpYmVD
b250cm9sbGVyOjppdGVtaXplU2hhcGVBbmRQbGFjZShjb25zdCBVQ2hhciogY3AsIHVuc2lnbmVk
IGxlbmd0aCwKICAgICBtX2l0ZW1zLnJlc2l6ZSg2KTsKICAgICBpbnQgbnVtSXRlbXMgPSAwOwog
ICAgIEhSRVNVTFQgcmMgPSBTX09LOwotICAgIHdoaWxlIChyYyA9IDo6U2NyaXB0SXRlbWl6ZShj
cCwgbGVuZ3RoLCBtX2l0ZW1zLnNpemUoKSAtIDEsICZtX2NvbnRyb2wsICZtX3N0YXRlLCBtX2l0
ZW1zLmRhdGEoKSwgJm51bUl0ZW1zKSA9PSBFX09VVE9GTUVNT1JZKSB7CisgICAgd2hpbGUgKChy
YyA9IDo6U2NyaXB0SXRlbWl6ZShjcCwgbGVuZ3RoLCBtX2l0ZW1zLnNpemUoKSAtIDEsICZtX2Nv
bnRyb2wsICZtX3N0YXRlLCBtX2l0ZW1zLmRhdGEoKSwgJm51bUl0ZW1zKSkgPT0gRV9PVVRPRk1F
TU9SWSkgewogICAgICAgICBtX2l0ZW1zLnJlc2l6ZShtX2l0ZW1zLnNpemUoKSAqIDIpOwogICAg
ICAgICByZXNldENvbnRyb2xBbmRTdGF0ZSgpOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358103</attachid>
            <date>2018-12-27 00:22:01 -0800</date>
            <delta_ts>2018-12-27 00:23:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192805-20181227172200.patch</filename>
            <type>text/plain</type>
            <size>2918</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NTU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTIzOGI0Zjc4NTIxMmQ4
MWE0MzViNGVmYTk5Mzg1MThlODVkNDMyMC4uM2VhY2FmNmExMmQ0YjBjYzI1ZGY1OGYxNjY0NzE1
ZmRhOTUxNDk1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE4LTEyLTI2ICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFtXaW5dIEZp
eCB0aGUgd3JvbmcgcmV0dXJuIHZhbHVlIGNoZWNraW5nIG9mIFNjcmlwdEl0ZW1pemUgaW4gVW5p
c2NyaWJlQ29udHJvbGxlcjo6aXRlbWl6ZVNoYXBlQW5kUGxhY2UKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjgwNQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVuaXNjcmliZUNvbnRyb2xsZXI6Oml0ZW1p
emVTaGFwZUFuZFBsYWNlIGhhcyBhIGVycm9yIGNoZWNrCisgICAgICAgICdGQUlMRUQocmMpJyBm
b3IgdGhlIHJldHVybiB2YWx1ZSBvZiBTY3JpcHRJdGVtaXplLiBIb3dldmVyLCBpdAorICAgICAg
ICBkaWRuJ3QgYWN0dWFsbHkgY2hlY2sgdGhlIHJldHVybiB2YWx1ZS4KKworICAgICAgICBUaGUg
ZXF1YWwgY29tcGFyaXNvbiAnPT0nIGhhcyBoaWdoZXIgb3BlcmF0b3IgcHJlY2VkZW5jZSB0aGFu
IHRoZQorICAgICAgICBhc3NpZ25tZW50ICc9Jy4KKworICAgICAgICAxLiByYyA9IDo6U2NyaXB0
SXRlbWl6ZSguLi4pID09IEVfT1VUT0ZNRU1PUlkKKyAgICAgICAgMi4gcmMgPSAoOjpTY3JpcHRJ
dGVtaXplKC4uLikgPT0gRV9PVVRPRk1FTU9SWSkKKyAgICAgICAgMy4gKHJjID0gOjpTY3JpcHRJ
dGVtaXplKC4uLikpID09IEVfT1VUT0ZNRU1PUlkKKworICAgICAgICBUaHVzLCB0aGUgZXhwcmVz
c2lvbiAjMSBpcyBzYW1lIHdpdGggIzIsIG5vdCAjMy4gQXMgdGhlIHJlc3VsdCwKKyAgICAgICAg
J0ZBSUxFRChyYyknIG5ldmVyIGJlIHRydWUuCisKKyAgICAgICAgRm9ydHVuYXRlbHksIGFzIGZh
ciBhcyBJIHVuZGVyc3RhbmQgdGhlIGNvZGUsIHRoZXJlIGlzIG5vdCBhbgorICAgICAgICBhY3R1
YWwgcHJvYmxlbSBiZWNhdXNlIFNjcmlwdEl0ZW1pemUgbmV2ZXIgcmV0dXJucyBFX0lOVkFMSURB
UkcgaW4KKyAgICAgICAgdGhlIGNvZGUuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBiZWhh
dmlvciBjaGFuZ2VzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1VuaXNjcmli
ZUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VW5pc2NyaWJlQ29udHJvbGxlcjo6
aXRlbWl6ZVNoYXBlQW5kUGxhY2UpOiBVc2UKKyAgICAgICAgcGFyZW50aGVzZXMgdG8gYXNzaWdu
ICdyYycgdGhlIHJldHVybiBjb2RlLiBSZXBsYWNlZCB0aGUgdXNlbGVzcworICAgICAgICBlcnJv
ciBjaGVjayB3aXRoIGFuIGFzc2VydGlvbiBlbnN1cmluZyAnU1VDQ0VFREVEKHJjKScuCisKIDIw
MTgtMTItMjYgIEppbSBNYXNvbiAgPGptYXNvbkBpYmlueC5jb20+CiAKICAgICAgICAgW0ZyZWVU
eXBlXSBSZXN0b3JlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGxvZ2ljIGZvciByZWNlbnQgSGFy
ZkJ1enogcmVmYWN0b3JpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9VbmlzY3JpYmVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9VbmlzY3JpYmVDb250cm9sbGVyLmNwcAppbmRleCA0NDBhMGExZTFj
ZGQyMTEwNDQ4MDI0MTdmMmQ5ZjFjM2M5ZDM4YWVjLi45YzFkZWQ5YjJkYTMxYWVjOGU4NGVmZmRm
YjM2MjlhMWM1MmQxZGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL1VuaXNjcmliZUNvbnRyb2xsZXIuY3BwCkBAIC0xOTYsMTQgKzE5
NiwxMSBAQCB2b2lkIFVuaXNjcmliZUNvbnRyb2xsZXI6Oml0ZW1pemVTaGFwZUFuZFBsYWNlKGNv
bnN0IFVDaGFyKiBjcCwgdW5zaWduZWQgbGVuZ3RoLAogICAgIG1faXRlbXMucmVzaXplKDYpOwog
ICAgIGludCBudW1JdGVtcyA9IDA7CiAgICAgSFJFU1VMVCByYyA9IFNfT0s7Ci0gICAgd2hpbGUg
KHJjID0gOjpTY3JpcHRJdGVtaXplKGNwLCBsZW5ndGgsIG1faXRlbXMuc2l6ZSgpIC0gMSwgJm1f
Y29udHJvbCwgJm1fc3RhdGUsIG1faXRlbXMuZGF0YSgpLCAmbnVtSXRlbXMpID09IEVfT1VUT0ZN
RU1PUlkpIHsKKyAgICB3aGlsZSAoKHJjID0gOjpTY3JpcHRJdGVtaXplKGNwLCBsZW5ndGgsIG1f
aXRlbXMuc2l6ZSgpIC0gMSwgJm1fY29udHJvbCwgJm1fc3RhdGUsIG1faXRlbXMuZGF0YSgpLCAm
bnVtSXRlbXMpKSA9PSBFX09VVE9GTUVNT1JZKSB7CiAgICAgICAgIG1faXRlbXMucmVzaXplKG1f
aXRlbXMuc2l6ZSgpICogMik7CiAgICAgICAgIHJlc2V0Q29udHJvbEFuZFN0YXRlKCk7CiAgICAg
fQotICAgIGlmIChGQUlMRUQocmMpKSB7Ci0gICAgICAgIFdURkxvZ0Fsd2F5cygiVW5pc2NyaWJl
Q29udHJvbGxlcjo6aXRlbWl6ZVNoYXBlQW5kUGxhY2U6IFNjcmlwdEl0ZW1pemUgZmFpbGVkLCBy
Yz0lbHgiLCByYyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgQVNTRVJUX1VOVVNFRChy
YywgU1VDQ0VFREVEKHJjKSk7IC8vIFNjcmlwdEl0ZW1pemUgbmV2ZXIgcmV0dXJucyBFX0lOVkFM
SURBUkcuCiAgICAgbV9pdGVtcy5yZXNpemUobnVtSXRlbXMgKyAxKTsKIAogICAgIGlmIChtX3J1
bi5ydGwoKSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358104</attachid>
            <date>2018-12-27 00:24:05 -0800</date>
            <delta_ts>2020-02-11 19:56:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192805-20181227172404.patch</filename>
            <type>text/plain</type>
            <size>2933</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NTU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTIzOGI0Zjc4NTIxMmQ4
MWE0MzViNGVmYTk5Mzg1MThlODVkNDMyMC4uM2VhY2FmNmExMmQ0YjBjYzI1ZGY1OGYxNjY0NzE1
ZmRhOTUxNDk1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE4LTEyLTI2ICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFtXaW5dIEZp
eCB0aGUgd3JvbmcgcmV0dXJuIHZhbHVlIGNoZWNraW5nIG9mIFNjcmlwdEl0ZW1pemUgaW4gVW5p
c2NyaWJlQ29udHJvbGxlcjo6aXRlbWl6ZVNoYXBlQW5kUGxhY2UKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjgwNQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVuaXNjcmliZUNvbnRyb2xsZXI6Oml0ZW1p
emVTaGFwZUFuZFBsYWNlIGhhcyBhIGVycm9yIGNoZWNrCisgICAgICAgICdGQUlMRUQocmMpJyBm
b3IgdGhlIHJldHVybiB2YWx1ZSBvZiBTY3JpcHRJdGVtaXplLiBIb3dldmVyLCBpdAorICAgICAg
ICBkaWRuJ3QgYWN0dWFsbHkgY2hlY2sgdGhlIHJldHVybiB2YWx1ZS4KKworICAgICAgICBUaGUg
ZXF1YWwgY29tcGFyaXNvbiAnPT0nIGhhcyBoaWdoZXIgb3BlcmF0b3IgcHJlY2VkZW5jZSB0aGFu
IHRoZQorICAgICAgICBhc3NpZ25tZW50ICc9Jy4KKworICAgICAgICAxLiByYyA9IDo6U2NyaXB0
SXRlbWl6ZSguLi4pID09IEVfT1VUT0ZNRU1PUlkKKyAgICAgICAgMi4gcmMgPSAoOjpTY3JpcHRJ
dGVtaXplKC4uLikgPT0gRV9PVVRPRk1FTU9SWSkKKyAgICAgICAgMy4gKHJjID0gOjpTY3JpcHRJ
dGVtaXplKC4uLikpID09IEVfT1VUT0ZNRU1PUlkKKworICAgICAgICBUaHVzLCB0aGUgZXhwcmVz
c2lvbiAjMSBpcyBzYW1lIHdpdGggIzIsIG5vdCAjMy4gQXMgdGhlIHJlc3VsdCwKKyAgICAgICAg
J0ZBSUxFRChyYyknIG5ldmVyIGJlIHRydWUuCisKKyAgICAgICAgRm9ydHVuYXRlbHksIGFzIGZh
ciBhcyBJIHVuZGVyc3RhbmQgdGhlIGNvZGUsIHRoZXJlIGlzIG5vdCBhbgorICAgICAgICBhY3R1
YWwgcHJvYmxlbSBiZWNhdXNlIFNjcmlwdEl0ZW1pemUgbmV2ZXIgcmV0dXJucyBFX0lOVkFMSURB
UkcgaW4KKyAgICAgICAgdGhlIGNvZGUuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBiZWhh
dmlvciBjaGFuZ2VzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1VuaXNjcmli
ZUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VW5pc2NyaWJlQ29udHJvbGxlcjo6
aXRlbWl6ZVNoYXBlQW5kUGxhY2UpOiBVc2UKKyAgICAgICAgcGFyZW50aGVzZXMgdG8gYXNzaWdu
ICdyYycgdGhlIHJldHVybiBjb2RlLiBSZXBsYWNlZCB0aGUgdXNlbGVzcworICAgICAgICBlcnJv
ciBjaGVjayB3aXRoIGFuIGFzc2VydGlvbiBlbnN1cmluZyAnU1VDQ0VFREVEKHJjKScuCisKIDIw
MTgtMTItMjYgIEppbSBNYXNvbiAgPGptYXNvbkBpYmlueC5jb20+CiAKICAgICAgICAgW0ZyZWVU
eXBlXSBSZXN0b3JlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGxvZ2ljIGZvciByZWNlbnQgSGFy
ZkJ1enogcmVmYWN0b3JpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9VbmlzY3JpYmVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9VbmlzY3JpYmVDb250cm9sbGVyLmNwcAppbmRleCA0NDBhMGExZTFj
ZGQyMTEwNDQ4MDI0MTdmMmQ5ZjFjM2M5ZDM4YWVjLi45MzhjNDAyODgyZmNiMGY3NjNmOTU4YjE3
NjE4OTBiMjQ3MjI2YzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL1VuaXNjcmliZUNvbnRyb2xsZXIuY3BwCkBAIC0xOTYsMTQgKzE5
NiwxMSBAQCB2b2lkIFVuaXNjcmliZUNvbnRyb2xsZXI6Oml0ZW1pemVTaGFwZUFuZFBsYWNlKGNv
bnN0IFVDaGFyKiBjcCwgdW5zaWduZWQgbGVuZ3RoLAogICAgIG1faXRlbXMucmVzaXplKDYpOwog
ICAgIGludCBudW1JdGVtcyA9IDA7CiAgICAgSFJFU1VMVCByYyA9IFNfT0s7Ci0gICAgd2hpbGUg
KHJjID0gOjpTY3JpcHRJdGVtaXplKGNwLCBsZW5ndGgsIG1faXRlbXMuc2l6ZSgpIC0gMSwgJm1f
Y29udHJvbCwgJm1fc3RhdGUsIG1faXRlbXMuZGF0YSgpLCAmbnVtSXRlbXMpID09IEVfT1VUT0ZN
RU1PUlkpIHsKKyAgICB3aGlsZSAoKHJjID0gOjpTY3JpcHRJdGVtaXplKGNwLCBsZW5ndGgsIG1f
aXRlbXMuc2l6ZSgpIC0gMSwgJm1fY29udHJvbCwgJm1fc3RhdGUsIG1faXRlbXMuZGF0YSgpLCAm
bnVtSXRlbXMpKSA9PSBFX09VVE9GTUVNT1JZKSB7CiAgICAgICAgIG1faXRlbXMucmVzaXplKG1f
aXRlbXMuc2l6ZSgpICogMik7CiAgICAgICAgIHJlc2V0Q29udHJvbEFuZFN0YXRlKCk7CiAgICAg
fQotICAgIGlmIChGQUlMRUQocmMpKSB7Ci0gICAgICAgIFdURkxvZ0Fsd2F5cygiVW5pc2NyaWJl
Q29udHJvbGxlcjo6aXRlbWl6ZVNoYXBlQW5kUGxhY2U6IFNjcmlwdEl0ZW1pemUgZmFpbGVkLCBy
Yz0lbHgiLCByYyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgQVNTRVJUX1VOVVNFRChy
YywgU1VDQ0VFREVEKHJjKSk7IC8vIFNjcmlwdEl0ZW1pemUgbXVzdCBub3QgcmV0dXJuIEVfSU5W
QUxJREFSRyBpbiB0aGlzIGNvZGUuCiAgICAgbV9pdGVtcy5yZXNpemUobnVtSXRlbXMgKyAxKTsK
IAogICAgIGlmIChtX3J1bi5ydGwoKSkgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>