<?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>145608</bug_id>
          
          <creation_ts>2015-06-03 09:58:54 -0700</creation_ts>
          <short_desc>Fix strncpy use in WebCore::Text::formatForDebugger</short_desc>
          <delta_ts>2019-02-06 09:03:58 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=145596</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=145283</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1099175</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-06-03 09:58:54 -0700</bug_when>
    <thetext>r185137 replaced a call to strncpy with a call to strlcpy, which broke the build on Linux since strlcpy does not exist there. r185148 reverted this to use strncpy again, but got the size argument off by one, introducing a buffer overrun.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099178</commentid>
    <comment_count>1</comment_count>
      <attachid>254184</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-06-03 10:06:03 -0700</bug_when>
    <thetext>Created attachment 254184
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099285</commentid>
    <comment_count>2</comment_count>
      <attachid>254184</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-03 14:30:16 -0700</bug_when>
    <thetext>Comment on attachment 254184
Patch

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

&gt; Source/WebCore/dom/Text.cpp:238
&gt; -    strncpy(buffer, result.toString().utf8().data(), length);
&gt; +    strncpy(buffer, result.toString().utf8().data(), length - 1);

This helpful but not a complete fix. As explained in man pages the world over, using strncpy for this purpose requires:

    strncpy(buffer, input, length - 1);
    buffer[length - 1] = &apos;\0&apos;;

We normally prefer strlcpy for that reason, but not sure if strlcpy is available on all the platforms we care about.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099286</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-03 14:30:48 -0700</bug_when>
    <thetext>I see, we switched back from strlcpy to this. Please use strncpy the right way, then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099484</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-06-04 08:15:29 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; This helpful but not a complete fix.

Thanks for catching this; I will land with that fixed.

(In reply to comment #2)
&gt; We normally prefer strlcpy for that reason, but not sure if strlcpy is
&gt; available on all the platforms we care about.

Here&apos;s an article about why strlcpy is not available on Linux: https://lwn.net/Articles/612244/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099488</commentid>
    <comment_count>5</comment_count>
      <attachid>254266</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-06-04 09:14:25 -0700</bug_when>
    <thetext>Created attachment 254266
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099491</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-06-04 09:20:11 -0700</bug_when>
    <thetext>Is it typical to assign issues like these to the security product? I will do so, as a precaution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099545</commentid>
    <comment_count>7</comment_count>
      <attachid>254266</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-04 11:25:17 -0700</bug_when>
    <thetext>Comment on attachment 254266
Patch

Rejecting attachment 254266 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 254266, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
nts_and_execute
    return self.execute(options, args, tool) or 0
  File &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/tool/commands/download.py&quot;, line 173, in execute
    bugs_to_patches = self._collect_patches_by_bug(patches)
  File &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/tool/commands/download.py&quot;, line 165, in _collect_patches_by_bug
    bugs_to_patches[patch.bug_id()] = bugs_to_patches.get(patch.bug_id(), []) + [patch]
AttributeError: &apos;NoneType&apos; object has no attribute &apos;bug_id&apos;

Full output: http://webkit-queues.appspot.com/results/6374772183138304</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099557</commentid>
    <comment_count>8</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-06-04 12:12:20 -0700</bug_when>
    <thetext>&apos;webkit-patch land&apos; is hanging for me, so I don&apos;t know how to land this. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099972</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-05 14:46:13 -0700</bug_when>
    <thetext>Dave Kilzer, maybe you can help Michael get this patch landed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100197</commentid>
    <comment_count>10</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-06-07 11:21:59 -0700</bug_when>
    <thetext>I also tried &apos;webkit-patch land-cowhand&apos; which also hung. webkit-patch used to work for me. Due to time commitments on another project, I won&apos;t debug further. I don&apos;t mind much, as I normally just use the cq+ Bugzilla flag, but I guess that maybe doesn&apos;t work for security product bugs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100272</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-07 17:50:29 -0700</bug_when>
    <thetext>While it’s OK to treat this the way we treat some security bugs since it does involve a buffer overrun in theory, I don’t think it’s critical to have it inside the hidden component.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100278</commentid>
    <comment_count>12</comment_count>
      <attachid>254266</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-07 18:40:06 -0700</bug_when>
    <thetext>Comment on attachment 254266
Patch

Clearing flags on attachment: 254266

Committed r185309: &lt;http://trac.webkit.org/changeset/185309&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100279</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-07 18:40:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1503075</commentid>
    <comment_count>14</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2019-02-06 09:03:58 -0800</bug_when>
    <thetext>Mass moving XML DOM bugs to the &quot;DOM&quot; Component.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254184</attachid>
            <date>2015-06-03 10:06:03 -0700</date>
            <delta_ts>2015-06-04 09:14:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145608-20150603120543.patch</filename>
            <type>text/plain</type>
            <size>1526</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzFlODUzM2ViNzA1MjIx
NjkxMWJmMmU1YTJiMGFkODlmZmY0MDExYi4uMzA2ZGZmZjMzOTlkNjkxZTdlM2JlNmQ1ZTQyNjFh
YWQxMThhNTUxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA2LTAzICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBGaXggc3Ry
bmNweSB1c2UgaW4gV2ViQ29yZTo6VGV4dDo6Zm9ybWF0Rm9yRGVidWdnZXIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTYwOAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHIxODUxMzcgcmVwbGFjZWQgYSBj
YWxsIHRvIHN0cm5jcHkgd2l0aCBhIGNhbGwgdG8gc3RybGNweSwgd2hpY2ggYnJva2UgdGhlIGJ1
aWxkIG9uIExpbnV4CisgICAgICAgIHNpbmNlIHN0cmxjcHkgZG9lcyBub3QgZXhpc3QgdGhlcmUu
IHIxODUxNDggcmV2ZXJ0ZWQgdGhpcyB0byB1c2Ugc3RybmNweSBhZ2FpbiwgYnV0IGdvdCB0aGUK
KyAgICAgICAgc2l6ZSBhcmd1bWVudCBvZmYgYnkgb25lLCBpbnRyb2R1Y2luZyBhIGJ1ZmZlciBv
dmVycnVuLgorCisgICAgICAgICogZG9tL1RleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dDo6Zm9ybWF0Rm9yRGVidWdnZXIpOgorCiAyMDE1LTA2LTAzICBYYWJpZXIgUm9kcmlndWV6IENh
bHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+IGFuZCBZb3Vlbm4gRmFibGV0IDx5b3Vlbm4uZmFi
bGV0QGNyZi5jYW5vbi5mcj4KIAogICAgICAgICBbU3RyZWFtcyBBUEldIFJlYWRhYmxlU3RyZWFt
UmVhZGVyOjpjbG9zZWQoKSBzaG91bGQgYmUgY2FsbGVkIG9uY2UgYnkgYmluZGluZyBjb2RlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVGV4dC5jcHAKaW5kZXggMjM2Zjg5ZDJiMWZiNDY2YjA4MjkyYTkwZjAzNGQ4MzFmMzNkNzUx
OS4uZDUyNzcxMzdjNTBlYTQyZjE2OWJiMzM2NjNmMDJlNjZjNDQ0MDZjNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0
LmNwcApAQCAtMjM1LDcgKzIzNSw3IEBAIHZvaWQgVGV4dDo6Zm9ybWF0Rm9yRGVidWdnZXIoY2hh
ciogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0CiAgICAgICAgIHJlc3VsdC5hcHBlbmQo
JyInKTsKICAgICB9CiAKLSAgICBzdHJuY3B5KGJ1ZmZlciwgcmVzdWx0LnRvU3RyaW5nKCkudXRm
OCgpLmRhdGEoKSwgbGVuZ3RoKTsKKyAgICBzdHJuY3B5KGJ1ZmZlciwgcmVzdWx0LnRvU3RyaW5n
KCkudXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0gMSk7CiB9CiAjZW5kaWYKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254266</attachid>
            <date>2015-06-04 09:14:25 -0700</date>
            <delta_ts>2015-06-07 18:40:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145608-20150604111403.patch</filename>
            <type>text/plain</type>
            <size>1643</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDgwOWFkNGQ4MTY0YjY3
ZjYyOTIzNTQwOGZkMjg0ZWRmYzQyOTU5NC4uNDI4ZGY3ZGQ0NGY2ZDM2MmM3YWFkMjczMTBjNmRl
MDk5MzZjOTA0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE1LTA2LTA0ICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBGaXggc3Ry
bmNweSB1c2UgaW4gV2ViQ29yZTo6VGV4dDo6Zm9ybWF0Rm9yRGVidWdnZXIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTYwOAorCisgICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIHIxODUxMzcgcmVwbGFjZWQgYSBjYWxs
IHRvIHN0cm5jcHkgd2l0aCBhIGNhbGwgdG8gc3RybGNweSwgd2hpY2ggYnJva2UgdGhlIGJ1aWxk
IG9uIExpbnV4CisgICAgICAgIHNpbmNlIHN0cmxjcHkgZG9lcyBub3QgZXhpc3QgdGhlcmUuIHIx
ODUxNDggcmV2ZXJ0ZWQgdGhpcyB0byB1c2Ugc3RybmNweSBhZ2FpbiwgYnV0IGdvdCB0aGUKKyAg
ICAgICAgc2l6ZSBhcmd1bWVudCBvZmYgYnkgb25lLCAiaW50cm9kdWNpbmciIGEgYnVmZmVyIG92
ZXJydW4uIEJ1dCB0aGlzIGNvZGUgaGFzIGFsd2F5cyBiZWVuCisgICAgICAgIHdyb25nLCBzaW5j
ZSBpdCB1c2VkIHN0cm5jcHkgd2l0aG91dCBlbnN1cmluZyB0aGF0IHRoZSBidWZmZXIgaXMgbnVs
bC10ZXJtaW5hdGVkIGFmdGVyIHRoZQorICAgICAgICBjYWxsIHRvIHN0cm5jcHkuIEZpeCB0aGlz
IGFzIHdlbGwuCisKKyAgICAgICAgKiBkb20vVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpU
ZXh0Ojpmb3JtYXRGb3JEZWJ1Z2dlcik6CisKIDIwMTUtMDYtMDMgIENhcmxvcyBBbGJlcnRvIExv
cGV6IFBlcmV6ICA8Y2xvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gW1dheWxhbmRd
IEJ1aWxkIGlzIGJyb2tlbiBvbiB0cnVuawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1RleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCmluZGV4IDIzNmY4OWQyYjFm
YjQ2NmIwODI5MmE5MGYwMzRkODMxZjMzZDc1MTkuLjQzZDk2YjE4NzNlNWUxNzgxZjNjMzRlNzYx
YzI0OTEzMjk3NjUxNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKQEAgLTIzNSw3ICsyMzUsOCBAQCB2b2lk
IFRleHQ6OmZvcm1hdEZvckRlYnVnZ2VyKGNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgbGVuZ3RoKSBj
b25zdAogICAgICAgICByZXN1bHQuYXBwZW5kKCciJyk7CiAgICAgfQogCi0gICAgc3RybmNweShi
dWZmZXIsIHJlc3VsdC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIGxlbmd0aCk7CisgICAgc3Ry
bmNweShidWZmZXIsIHJlc3VsdC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEp
OworICAgIGJ1ZmZlcltsZW5ndGggLSAxXSA9ICdcMCc7CiB9CiAjZW5kaWYKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>