<?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>145429</bug_id>
          
          <creation_ts>2015-05-27 22:58:34 -0700</creation_ts>
          <short_desc>Crash under ICU with ASAN during editing/selection/move-by-word-visually-crash-test-5.html</short_desc>
          <delta_ts>2015-05-28 21:31:00 -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>New Bugs</component>
          <version>528+ (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="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>ap</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1097846</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-05-27 22:58:34 -0700</bug_when>
    <thetext>Crash under ICU with ASAN during editing/selection/move-by-word-visually-crash-test-5.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097849</commentid>
    <comment_count>1</comment_count>
      <attachid>253836</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-05-27 23:12:38 -0700</bug_when>
    <thetext>Created attachment 253836
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097852</commentid>
    <comment_count>2</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-05-27 23:13:45 -0700</bug_when>
    <thetext>&lt;rdar://problem/20992218&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097915</commentid>
    <comment_count>3</comment_count>
      <attachid>253836</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-05-28 11:16:05 -0700</bug_when>
    <thetext>Comment on attachment 253836
Patch

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

&gt; Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:108
&gt; -            uText-&gt;chunkOffset = uText-&gt;chunkLength;
&gt; +            uText-&gt;chunkOffset = static_cast&lt;int32_t&gt;(index - uText-&gt;chunkNativeStart);
&gt;              return FALSE;

Did you test both code paths? It&apos;s not obvious to me what the expectation is when FALSE is returned.

Notably, the &quot;Already at the beginning; can&apos;t go any farther&quot; case below sets the offset to 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097920</commentid>
    <comment_count>4</comment_count>
      <attachid>253836</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-05-28 11:54:02 -0700</bug_when>
    <thetext>Comment on attachment 253836
Patch

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

&gt;&gt; Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp:108
&gt;&gt;              return FALSE;
&gt; 
&gt; Did you test both code paths? It&apos;s not obvious to me what the expectation is when FALSE is returned.
&gt; 
&gt; Notably, the &quot;Already at the beginning; can&apos;t go any farther&quot; case below sets the offset to 0.

The documentation states &quot;Returns True if the requested index could be accessed.  The chunk will contain the requested text. False value if a chunk cannot be accessed.&quot; According to the code, chunkOffset seems to be disregarded in the False case. I updated the code here for consistency with below.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097982</commentid>
    <comment_count>5</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-05-28 15:41:42 -0700</bug_when>
    <thetext>Committed r184965: &lt;http://trac.webkit.org/changeset/184965&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098038</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-05-28 18:07:56 -0700</bug_when>
    <thetext>This broke an API test: https://build.webkit.org/builders/Apple%20Yosemite%20Release%20WK2%20(Tests)?numbuilds=50

FAIL WebKit1.StringTruncator

/Volumes/Data/slave/yosemite-release/build/Tools/TestWebKitAPI/Tests/mac/StringTruncator.mm:36
Value of: &quot;abcdef…tuvwxyz&quot;
Expected: [[WebStringTruncator centerTruncateString:@&quot;abcdefghijklmnopqrstuvwxyz&quot; toWidth:100 withFont:[NSFont fontWithName:@&quot;Helvetica&quot; size:12]] UTF8String]
Which is: &quot;abcdefg…tuvwxyz&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098060</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-05-28 21:07:12 -0700</bug_when>
    <thetext>I landed the new results in &lt;http://trac.webkit.org/r184975&gt;. However, I don&apos;t know if the new results are correct, or if they are telling us about an off by one mistake in this patch.

Myles, could you please take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098062</commentid>
    <comment_count>8</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-05-28 21:25:16 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; I landed the new results in &lt;http://trac.webkit.org/r184975&gt;. However, I
&gt; don&apos;t know if the new results are correct, or if they are telling us about
&gt; an off by one mistake in this patch.
&gt; 
&gt; Myles, could you please take a look?

Verified that this is a progression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098063</commentid>
    <comment_count>9</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-05-28 21:31:00 -0700</bug_when>
    <thetext>You beat me! r184976</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253836</attachid>
            <date>2015-05-27 23:12:38 -0700</date>
            <delta_ts>2015-05-28 11:16:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145429-20150527231226.patch</filename>
            <type>text/plain</type>
            <size>3350</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0OTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWVlMzdkZmY2YWQzZDQz
ZGZlNzA2MzFkNzkyZGJhMjIwMzJiODVmMC4uZGE4NTRiNzNmODQ5YmFjYmVkMGVhN2UwNDg5NWI0
M2I5ZDA2ZDM5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE1LTA1LTI3ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQ3Jhc2ggdW5k
ZXIgSUNVIHdpdGggQVNBTiBkdXJpbmcgZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS13b3JkLXZp
c3VhbGx5LWNyYXNoLXRlc3QtNS5odG1sCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDU0MjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIwOTkyMjE4
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYktp
dCB1c2VzIHNvbWUgc3RyaW5ncyB3aGljaCBjb250YWluIHRoZSBsb3dlciA4LWJpdHMgb2YgVVRG
LTE2ICh0aGVyZWJ5IHNhdmluZyBzcGFjZSkuIEhvd2V2ZXIsCisgICAgICAgIElDVSBkb2Vzbid0
IHVuZGVyc3RhbmQgdGhpcyBlbmNvZGluZy4gV2hlbiB3ZSB3YW50IHRvIHVzZSBJQ1UgZnVuY3Rp
b25zIHdpdGggc3RyaW5ncyBpbiB0aGlzIGVuY29kaW5nLAorICAgICAgICB3ZSBjcmVhdGUgYSBV
VGV4dFByb3ZpZGVyIHdoaWNoIGNvbnZlcnRzIG91ciBlbmNvZGVkIHN0cmluZ3MgdG8gVVRGLTE2
IGZvciBJQ1UsIG9uZSBjaHVuayBhdCBhIHRpbWUuCisgICAgICAgIFRoaXMgb2JqZWN0IGNvbnRh
aW5zIGEgdnRhYmxlIHdoaWNoIHdlIHBvcHVsYXRlIHRvIHBlcmZvcm0gdGhlIGNvbnZlcnNpb24u
CisKKyAgICAgICAgVGhlIFdlYktpdCBmdW5jdGlvbiB3aGljaCBhY3R1YWxseSByZXR1cm5zIHRo
ZSBVVEYtMTYgY2h1bmtzIGhhcyB0d28gcmVsZXZhbnQgYXJndW1lbnRzOiBhbiBpbmRleCBpbnRv
CisgICAgICAgIHRoZSBlbmNvZGVkIHN0cmluZyB3aGljaCBJQ1UgaXMgcmVxdWVzdGluZywgYW5k
IGEgZGlyZWN0aW9uIGZyb20gdGhhdCBpbmRleCB3aGljaCBJQ1UgaXMgaW50ZXJlc3RlZAorICAg
ICAgICBpbi4gVGhpcyBmdW5jdGlvbiBwb3B1bGF0ZXMgYSAiY2h1bmsiIHdoaWNoIGlzIGNoYXJh
Y3Rlcml6ZWQgYnkgYSBwb2ludGVyIHRvIGEgYnVmZmVyLCB0aGUgbGVuZ3RoIG9mCisgICAgICAg
IHRoZSBwb3B1bGF0ZWQgZGF0YSBpbiB0aGUgYnVmZmVyLCBhbmQgYW4gb2Zmc2V0IGludG8gdGhl
IGNodW5rIHdoaWNoIHJlcHJlc2VudHMgdGhlIGluZGV4IHRoYXQgdGhlCisgICAgICAgIHJlcXVl
c3RlZCBjaGFyYWN0ZXIgd2FzIHB1dCBpbnRvLgorCisgICAgICAgIFdoZW4gSUNVIHJlcXVlc3Rz
IGRhdGEgZ29pbmcgYmFja3dhcmQsIHdlIGZpbGwgaW4gdGhlIGNodW5rIGFjY29yZGluZ2x5LCB3
aXRoIHRoZSByZXF1ZXN0ZWQgY2hhcmFjdGVyCisgICAgICAgIGFsbCB0aGUgd2F5IGF0IHRoZSBl
bmQuIFdlIHRoZW4gc2V0IHRoZSBvZmZzZXQgZXF1YWwgdG8gdGhlIGxlbmd0aCBvZiB0aGUgYnVm
ZmVyLiBIb3dldmVyLCB0aGlzIGxlbmd0aAorICAgICAgICB2YWx1ZSBpcyBzdGFsZSBmcm9tIHRo
ZSBwcmV2aW91cyB0aW1lIHRoZSBmdW5jdGlvbiByYW4uIFRoZXJlZm9yZSwgSUNVIHdhcyByZWFk
aW5nIHRoZSB3cm9uZyBpbmRleCBpbgorICAgICAgICB0aGUgY2h1bmsgd2hlbiBleHBlY3Rpbmcg
dGhlIHJlcXVlc3RlZCBjaGFyYWN0ZXIuCisKKyAgICAgICAgQ292ZXJlZCBieSBlZGl0aW5nL3Nl
bGVjdGlvbi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktY3Jhc2gtdGVzdC01Lmh0bWwuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS90ZXh0L2ljdS9VVGV4dFByb3ZpZGVyTGF0aW4xLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnVUZXh0TGF0aW4xQWNjZXNzKToKKwogMjAxNS0wNS0yNyAgRXJpYyBDYXJsc29u
ICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSBzaG9ydC1jaXJjdWl0
IE1JTUUgdHlwZSBsb29rdXAgd2hlbiBwb3NzaWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9pY3UvVVRleHRQcm92aWRlckxhdGluMS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L2ljdS9VVGV4dFByb3ZpZGVyTGF0aW4xLmNwcAppbmRleCA3NDhk
MmE1NGZhZjhmMDVhOTc5YjhhNmZhMTc3MjQ0MjczMTRiMmQ3Li5jZDY4NTJjNzFlNTVlZjk3Y2Ew
YjBiYTFjZmY4ODBiOTk3MGY3M2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L2ljdS9VVGV4dFByb3ZpZGVyTGF0aW4xLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L2ljdS9VVGV4dFByb3ZpZGVyTGF0aW4xLmNwcApAQCAtMTA0LDcgKzEwNCw3
IEBAIHN0YXRpYyBVQm9vbCB1VGV4dExhdGluMUFjY2VzcyhVVGV4dCogdVRleHQsIGludDY0X3Qg
aW5kZXgsIFVCb29sIGZvcndhcmQpCiAgICAgICAgIH0KICAgICAgICAgaWYgKGluZGV4ID49IGxl
bmd0aCAmJiB1VGV4dC0+Y2h1bmtOYXRpdmVMaW1pdCA9PSBsZW5ndGgpIHsKICAgICAgICAgICAg
IC8vIE9mZiB0aGUgZW5kIG9mIHRoZSBidWZmZXIsIGJ1dCB3ZSBjYW4ndCBnZXQgaXQuCi0gICAg
ICAgICAgICB1VGV4dC0+Y2h1bmtPZmZzZXQgPSB1VGV4dC0+Y2h1bmtMZW5ndGg7CisgICAgICAg
ICAgICB1VGV4dC0+Y2h1bmtPZmZzZXQgPSBzdGF0aWNfY2FzdDxpbnQzMl90PihpbmRleCAtIHVU
ZXh0LT5jaHVua05hdGl2ZVN0YXJ0KTsKICAgICAgICAgICAgIHJldHVybiBGQUxTRTsKICAgICAg
ICAgfQogICAgIH0gZWxzZSB7CkBAIC0xMzYsNyArMTM2LDcgQEAgc3RhdGljIFVCb29sIHVUZXh0
TGF0aW4xQWNjZXNzKFVUZXh0KiB1VGV4dCwgaW50NjRfdCBpbmRleCwgVUJvb2wgZm9yd2FyZCkK
ICAgICAgICAgaWYgKHVUZXh0LT5jaHVua05hdGl2ZVN0YXJ0IDwgMCkKICAgICAgICAgICAgIHVU
ZXh0LT5jaHVua05hdGl2ZVN0YXJ0ID0gMDsKIAotICAgICAgICB1VGV4dC0+Y2h1bmtPZmZzZXQg
PSB1VGV4dC0+Y2h1bmtMZW5ndGg7CisgICAgICAgIHVUZXh0LT5jaHVua09mZnNldCA9IHN0YXRp
Y19jYXN0PGludDMyX3Q+KGluZGV4IC0gdVRleHQtPmNodW5rTmF0aXZlU3RhcnQpOwogICAgIH0K
ICAgICB1VGV4dC0+Y2h1bmtMZW5ndGggPSBzdGF0aWNfY2FzdDxpbnQzMl90Pih1VGV4dC0+Y2h1
bmtOYXRpdmVMaW1pdCAtIHVUZXh0LT5jaHVua05hdGl2ZVN0YXJ0KTsKIAo=
</data>
<flag name="review"
          id="278785"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>