<?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>113962</bug_id>
          
          <creation_ts>2013-04-04 14:41:00 -0700</creation_ts>
          <short_desc>GtkSelectionData length is off by one</short_desc>
          <delta_ts>2013-05-19 07:55:40 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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>0</everconfirmed>
          <reporter name="Daniel Narvaez">dwnarvaez</reporter>
          <assigned_to name="Martin Robinson">mrobinson</assigned_to>
          <cc>dwnarvaez</cc>
    
    <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>869374</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Narvaez">dwnarvaez</who>
    <bug_when>2013-04-04 14:41:00 -0700</bug_when>
    <thetext>If you drag a link from webkit to another gtk widget, which supports text/uri-list, the GtkSelectionData passed to the drag-data-received event will have the wrong length. In fact it will include the NULL termination.

It looks like the issue might be here

https://trac.webkit.org/browser/trunk/Source/WebCore/platform/gtk/PasteboardHelper.cpp#L175

The + 1 there seems wrong to me. Similar issue with TargetTypeMarkup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>869377</commentid>
    <comment_count>1</comment_count>
    <who name="Daniel Narvaez">dwnarvaez</who>
    <bug_when>2013-04-04 14:44:03 -0700</bug_when>
    <thetext>Oh and TargetTypeNetscapeURL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>889110</commentid>
    <comment_count>2</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-05-14 20:20:20 -0700</bug_when>
    <thetext>Thanks for reporting this bug. Is it causing any visible issues? I&apos;ve been looking at the drag-and-drop atom contents for different browsers and it seems they are all differ. For instance, I ran the paste program from: http://www.edwardrosten.com/code/x11.html like so:

./paste -dnd text/uri-list

After dragging a link 38 characters long, this is what I see in various browsers:

* Chromium: Number of items: 40
* Epiphany: Number of items: 39
* Firefox: Number of items: 38

If all browsers do something different and this isn&apos;t causing issues, I&apos;m tempted keep things as they are. If not, what widgets are showing issues and are they reproducible with Chromium?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>889170</commentid>
    <comment_count>3</comment_count>
    <who name="Daniel Narvaez">dwnarvaez</who>
    <bug_when>2013-05-15 00:33:06 -0700</bug_when>
    <thetext>If you drag a link from a webkitgtk widget to an application which uses pygobject Gtk.SelectionData.get_data, you will get uris with an extra \x00 at the end. In C applications I think it&apos;s normally not user visible because the string is null terminated anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>889283</commentid>
    <comment_count>4</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-05-15 07:34:14 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; If you drag a link from a webkitgtk widget to an application which uses pygobject Gtk.SelectionData.get_data, you will get uris with an extra \x00 at the end. In C applications I think it&apos;s normally not user visible because the string is null terminated anyway.

Do you have an example somewhere that illustrates this problem?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>889284</commentid>
    <comment_count>5</comment_count>
    <who name="Daniel Narvaez">dwnarvaez</who>
    <bug_when>2013-05-15 07:37:47 -0700</bug_when>
    <thetext>I can write a testcase, give me a couple of days.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890717</commentid>
    <comment_count>6</comment_count>
      <attachid>202169</attachid>
    <who name="Daniel Narvaez">dwnarvaez</who>
    <bug_when>2013-05-17 16:07:18 -0700</bug_when>
    <thetext>Created attachment 202169
Testcase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890722</commentid>
    <comment_count>7</comment_count>
    <who name="Daniel Narvaez">dwnarvaez</who>
    <bug_when>2013-05-17 16:11:49 -0700</bug_when>
    <thetext>If you run the testcase, drag a link from the web view to the empty window, the url with the final \x00 will printed out.

I got different results than yours testing this with firefox and epiphany with this testcase. I dragged the planet link on webkitgtk.org and firefox worked as expected, epiphany failed in the same way as webkit. That&apos;s more in line with what I&apos;d have expected.

firefox 10.0.12
epiphany 3.4.2
webkit 1.8.1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890733</commentid>
    <comment_count>8</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-05-17 16:31:49 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; If you run the testcase, drag a link from the web view to the empty window, the url with the final \x00 will printed out.
&gt; 
&gt; I got different results than yours testing this with firefox and epiphany with this testcase. I dragged the planet link on webkitgtk.org and firefox worked as expected, epiphany failed in the same way as webkit. That&apos;s more in line with what I&apos;d have expected.
&gt; 
&gt; firefox 10.0.12
&gt; epiphany 3.4.2
&gt; webkit 1.8.1

Thanks very much for the test case. Chromium&apos;s data is two characters longer because it includes a carriage return and a newline. Firefox includes neither. I&apos;ll try to have a fix today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890981</commentid>
    <comment_count>9</comment_count>
      <attachid>202223</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-05-18 17:32:12 -0700</bug_when>
    <thetext>Created attachment 202223
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>891024</commentid>
    <comment_count>10</comment_count>
      <attachid>202223</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-05-19 07:55:37 -0700</bug_when>
    <thetext>Comment on attachment 202223
Patch

Clearing flags on attachment: 202223

Committed r150350: &lt;http://trac.webkit.org/changeset/150350&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>891025</commentid>
    <comment_count>11</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-05-19 07:55:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>202169</attachid>
            <date>2013-05-17 16:07:18 -0700</date>
            <delta_ts>2013-05-17 16:07:18 -0700</delta_ts>
            <desc>Testcase</desc>
            <filename>test.py</filename>
            <type>text/x-python</type>
            <size>695</size>
            <attacher name="Daniel Narvaez">dwnarvaez</attacher>
            
              <data encoding="base64">aW1wb3J0IHN5cwoKZnJvbSBnaS5yZXBvc2l0b3J5IGltcG9ydCBXZWJLaXQKZnJvbSBnaS5yZXBv
c2l0b3J5IGltcG9ydCBHdGsKZnJvbSBnaS5yZXBvc2l0b3J5IGltcG9ydCBHZGsKCndpbmRvdyA9
IEd0ay5XaW5kb3coKQp3ZWJfdmlldyA9IFdlYktpdC5XZWJWaWV3KCkKd2luZG93LmFkZCh3ZWJf
dmlldykKd2luZG93LnNob3dfYWxsKCkKd2ViX3ZpZXcubG9hZF91cmkoImh0dHA6Ly93d3cud2Vi
a2l0Z3RrLm9yZyIpCgpkZWYgZHJhZ19kYXRhX3JlY2VpdmVkX2NiKHdpZGdldCwgY29udGV4dCwg
eCwgeSwgc2VsZWN0aW9uLCB0YXJnZXRUeXBlLCB0aW1lKToKICAgICMgTmVlZCB0byBlc2NhcGUg
YmVjYXVzZSB0aGUgdGVybWluYWwgd2lsbCBub3QgcHJpbnQgdGhlIGZpbmFsIFx4MDAKICAgIHBy
aW50IHNlbGVjdGlvbi5nZXRfZGF0YSgpLmVuY29kZSgic3RyaW5nLWVzY2FwZSIpLCBzZWxlY3Rp
b24uZ2V0X2xlbmd0aCgpCgp3aW5kb3cyID0gR3RrLldpbmRvdygpCndpbmRvdzIuZHJhZ19kZXN0
X3NldChHdGsuRGVzdERlZmF1bHRzLkFMTCwgTm9uZSwgR2RrLkRyYWdBY3Rpb24uQ09QWSkKd2lu
ZG93Mi5kcmFnX2Rlc3RfYWRkX3VyaV90YXJnZXRzKCkKd2luZG93Mi5jb25uZWN0KCJkcmFnX2Rh
dGFfcmVjZWl2ZWQiLCBkcmFnX2RhdGFfcmVjZWl2ZWRfY2IpCndpbmRvdzIuc2hvd19hbGwoKQoK
R3RrLm1haW4oKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202223</attachid>
            <date>2013-05-18 17:32:12 -0700</date>
            <delta_ts>2013-05-19 07:55:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-113962-20130518173103.patch</filename>
            <type>text/plain</type>
            <size>2784</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwMzQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDBlZDJmNGMxMmQ3NjAw
NDAxMGQyMzUwYzQzYmI5ZWRkMzNkNzY4MC4uNzJhNDZhMWYwYzZmMmU2ZGE5NzA2ZmMwMTVjOGNk
MDdkNDRjMzgyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTA1LTE4ICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBHdGtTZWxlY3Rp
b25EYXRhIGxlbmd0aCBpcyBvZmYgYnkgb25lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMTM5NjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIFNpbmNlIGRyYWcgZGF0YSBpcyBpbnRl
cnByZXRlZCBhcyBhIG51bGwtdGVybWluYXRlZCBzdHJpbmcKKyAgICAgICAgdGhpcyBpcyBkaWZm
aWN1bHQgdG8gdGVzdCB3aXRoIGEgQyBwcm9ncmFtIGFuZCB3ZSBoYXZlIG5vIGluZnJhc3RydWN0
dXJlCisgICAgICAgIGJ1aWx0IGZvciB1c2luZyBHSVIgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJv
YXJkSGVscGVyOjpmaWxsU2VsZWN0aW9uRGF0YSk6IEluc3RlYWQgb2YgaW5jbHVkaW5nIHRoZSBu
dWxsCisgICAgICAgIGNoYXJhY3RlciBpbiB0aGUgcGFzdGUgZGF0YSBsZW5ndGgsIGp1c3QgaW5j
bHVkZSB0aGUgc3RyaW5nLiBUaGlzIG1hdGNoZXMgdGhlIGJlaGF2aW9yCisgICAgICAgIG9mIEZp
cmVmb3guCisKIDIwMTMtMDUtMTggIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNv
bT4KIAogICAgICAgICBTaW1wbGlmeSBTdG9yYWdlQXJlYSBnZXR0ZXIgZnVuY3Rpb25zCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5jcHAKaW5kZXgg
NzMwNTZkNGJkMDJkY2VjNmIwMzBmNjY3MTE0Mjg5NWJiNjdjMzE0OC4uMTI2ZTg3YWVhYTIyYjc0
NTRmY2FiY2UyMzZhOTAyODFiMTdhNDU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9QYXN0ZWJvYXJkSGVscGVyLmNwcApAQCAtMTY2LDEyICsxNjYsMTIgQEAgdm9pZCBQ
YXN0ZWJvYXJkSGVscGVyOjpmaWxsU2VsZWN0aW9uRGF0YShHdGtTZWxlY3Rpb25EYXRhKiBzZWxl
Y3Rpb25EYXRhLCBndWludAogICAgICAgICAvLyBwcmVmaXhlZCBieSBhIGNvbnRlbnQtdHlwZSBt
ZXRhIHRhZy4KICAgICAgICAgQ1N0cmluZyBtYXJrdXAgPSBTdHJpbmcoZ01hcmt1cFByZWZpeCAr
IGRhdGFPYmplY3QtPm1hcmt1cCgpKS51dGY4KCk7CiAgICAgICAgIGd0a19zZWxlY3Rpb25fZGF0
YV9zZXQoc2VsZWN0aW9uRGF0YSwgbWFya3VwQXRvbSwgOCwKLSAgICAgICAgICAgIHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgZ3VjaGFyKj4obWFya3VwLmRhdGEoKSksIG1hcmt1cC5sZW5ndGgoKSAr
IDEpOworICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBndWNoYXIqPihtYXJrdXAu
ZGF0YSgpKSwgbWFya3VwLmxlbmd0aCgpKTsKIAogICAgIH0gZWxzZSBpZiAoaW5mbyA9PSBUYXJn
ZXRUeXBlVVJJTGlzdCkgewogICAgICAgICBDU3RyaW5nIHVyaUxpc3QgPSBkYXRhT2JqZWN0LT51
cmlMaXN0KCkudXRmOCgpOwogICAgICAgICBndGtfc2VsZWN0aW9uX2RhdGFfc2V0KHNlbGVjdGlv
bkRhdGEsIHVyaUxpc3RBdG9tLCA4LAotICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjb25z
dCBndWNoYXIqPih1cmlMaXN0LmRhdGEoKSksIHVyaUxpc3QubGVuZ3RoKCkgKyAxKTsKKyAgICAg
ICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgZ3VjaGFyKj4odXJpTGlzdC5kYXRhKCkpLCB1
cmlMaXN0Lmxlbmd0aCgpKTsKIAogICAgIH0gZWxzZSBpZiAoaW5mbyA9PSBUYXJnZXRUeXBlTmV0
c2NhcGVVUkwgJiYgZGF0YU9iamVjdC0+aGFzVVJMKCkpIHsKICAgICAgICAgU3RyaW5nIHVybChk
YXRhT2JqZWN0LT51cmwoKSk7CkBAIC0xODUsNyArMTg1LDcgQEAgdm9pZCBQYXN0ZWJvYXJkSGVs
cGVyOjpmaWxsU2VsZWN0aW9uRGF0YShHdGtTZWxlY3Rpb25EYXRhKiBzZWxlY3Rpb25EYXRhLCBn
dWludAogCiAgICAgICAgIEdPd25QdHI8Z2NoYXI+IHJlc3VsdERhdGEoZ19zdHJkdXAocmVzdWx0
LnV0ZjgoKS5kYXRhKCkpKTsKICAgICAgICAgZ3RrX3NlbGVjdGlvbl9kYXRhX3NldChzZWxlY3Rp
b25EYXRhLCBuZXRzY2FwZVVSTEF0b20sIDgsCi0gICAgICAgICAgICByZWludGVycHJldF9jYXN0
PGNvbnN0IGd1Y2hhcio+KHJlc3VsdERhdGEuZ2V0KCkpLCBzdHJsZW4ocmVzdWx0RGF0YS5nZXQo
KSkgKyAxKTsKKyAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgZ3VjaGFyKj4ocmVz
dWx0RGF0YS5nZXQoKSksIHN0cmxlbihyZXN1bHREYXRhLmdldCgpKSk7CiAKICAgICB9IGVsc2Ug
aWYgKGluZm8gPT0gVGFyZ2V0VHlwZUltYWdlKQogICAgICAgICBndGtfc2VsZWN0aW9uX2RhdGFf
c2V0X3BpeGJ1ZihzZWxlY3Rpb25EYXRhLCBkYXRhT2JqZWN0LT5pbWFnZSgpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>