<?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>190281</bug_id>
          
          <creation_ts>2018-10-04 10:06:03 -0700</creation_ts>
          <short_desc>Validation in Connection::readBytesFromSocket() is too aggressive</short_desc>
          <delta_ts>2018-11-21 16:26:19 -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=171871</see_also>
          <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="Konstantin Tokarev">annulen</reporter>
          <assigned_to name="Konstantin Tokarev">annulen</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1466394</commentid>
    <comment_count>0</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2018-10-04 10:06:03 -0700</bug_when>
    <thetext>Since r217206 Connection::readBytesFromSocket() validates size of control message. However, it compares cmsg_len with attachmentMaxAmount, while Connection::sendOutgoingMessage() computes it as CMSG_LEN(sizeof(int) * attachmentFDBufferLength) where attachmentFDBufferLength &lt;= attachmentMaxAmount. This mismatch between sender and receiver leads to possibility of assertion failure with large number of attachments, e.g. here 62 attachments have cmsg_length == 264.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466395</commentid>
    <comment_count>1</comment_count>
      <attachid>351598</attachid>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2018-10-04 10:09:04 -0700</bug_when>
    <thetext>Created attachment 351598
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466950</commentid>
    <comment_count>2</comment_count>
      <attachid>351598</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-10-07 12:54:55 -0700</bug_when>
    <thetext>Comment on attachment 351598
Patch

Oh wow, good find.

Under what scenario were you hitting this failure? Any way to write a test?

Can you add it to https://trac.webkit.org/wiki/WebKitGTK/2.22.x (for 2.22.3) after landing, please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467131</commentid>
    <comment_count>3</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2018-10-08 11:45:37 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #2)
&gt; Comment on attachment 351598 [details]
&gt; Patch
&gt; 
&gt; Oh wow, good find.
&gt; 
&gt; Under what scenario were you hitting this failure?

It was reproducing with QtWebKit, but not with GTK port. I guess behavior is different because Qt uses UI-side compositing, which is probably a reson why there are so many attachments.

&gt;Any way to write a test?

No idea from the top of my had.

&gt; 
&gt; Can you add it to https://trac.webkit.org/wiki/WebKitGTK/2.22.x (for 2.22.3)
&gt; after landing, please?

Sure</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467136</commentid>
    <comment_count>4</comment_count>
      <attachid>351598</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-08 12:12:36 -0700</bug_when>
    <thetext>Comment on attachment 351598
Patch

Clearing flags on attachment: 351598

Committed r236928: &lt;https://trac.webkit.org/changeset/236928&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467137</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-08 12:12:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467138</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-08 12:13:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/45098148&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351598</attachid>
            <date>2018-10-04 10:09:04 -0700</date>
            <delta_ts>2018-10-08 12:12:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190281-20181004200908.patch</filename>
            <type>text/plain</type>
            <size>2250</size>
            <attacher name="Konstantin Tokarev">annulen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2MTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk4OGQzODhiZjdiZjZmMzdi
MWFkODk0MmM1N2EyZDc3MDBmNWMxNTguLjNmMTZkNDdmYTYyYmE5ZTEwNGFjMGYyOGE4MWQ3Yzlm
OGNkNzRlOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTgtMTAtMDQgIEtvbnN0YW50
aW4gVG9rYXJldiAgPGFubnVsZW5AeWFuZGV4LnJ1PgorCisgICAgICAgIFZhbGlkYXRpb24gaW4g
Q29ubmVjdGlvbjo6cmVhZEJ5dGVzRnJvbVNvY2tldCgpIGlzIHRvbyBhZ2dyZXNzaXZlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTAyODEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW5jZSByMjE3MjA2
IENvbm5lY3Rpb246OnJlYWRCeXRlc0Zyb21Tb2NrZXQoKSB2YWxpZGF0ZXMgc2l6ZSBvZgorICAg
ICAgICBjb250cm9sIG1lc3NhZ2UuIEhvd2V2ZXIsIGl0IGNvbXBhcmVzIGNtc2dfbGVuIHdpdGgg
YXR0YWNobWVudE1heEFtb3VudCwKKyAgICAgICAgd2hpbGUgQ29ubmVjdGlvbjo6c2VuZE91dGdv
aW5nTWVzc2FnZSgpIGNvbXB1dGVzIGl0IGFzCisgICAgICAgIENNU0dfTEVOKHNpemVvZihpbnQp
ICogYXR0YWNobWVudEZEQnVmZmVyTGVuZ3RoKSB3aGVyZQorICAgICAgICBhdHRhY2htZW50RkRC
dWZmZXJMZW5ndGggPD0gYXR0YWNobWVudE1heEFtb3VudC4gVGhpcyBtaXNtYXRjaCBiZXR3ZWVu
CisgICAgICAgIHNlbmRlciBhbmQgcmVjZWl2ZXIgbGVhZHMgdG8gcG9zc2liaWxpdHkgb2YgYXNz
ZXJ0aW9uIGZhaWx1cmUgd2l0aCBsYXJnZQorICAgICAgICBudW1iZXIgb2YgYXR0YWNobWVudHMs
IGUuZy4gaGVyZSA2MiBhdHRhY2htZW50cyBoYXZlIGNtc2dfbGVuZ3RoID09IDI2NC4KKworICAg
ICAgICAqIFBsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcDoKKyAgICAgICAgKElQ
Qzo6cmVhZEJ5dGVzRnJvbVNvY2tldCk6CisKIDIwMTgtMDktMTcgIFphbiBEb2JlcnNlayAgPHpk
b2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IGFmdGVy
IHIyMzYxMDEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy91bml4L0Nv
bm5lY3Rpb25Vbml4LmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVj
dGlvblVuaXguY3BwCmluZGV4IDljMzgwMDQ2ZGRiYWY0NWY4MmVkNGQ2OWY4NWJhMmQ5M2Y2Njk1
YTUuLjRmM2FiMTQ2MDhiNGJmZDJlNjVhMDQxMDJjNGQ0OGFjNWM2YWQ2NTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwCkBAIC0y
NzMsNyArMjczLDcgQEAgc3RhdGljIHNzaXplX3QgcmVhZEJ5dGVzRnJvbVNvY2tldChpbnQgc29j
a2V0RGVzY3JpcHRvciwgVmVjdG9yPHVpbnQ4X3Q+JiBidWZmZXIKICAgICAgICAgc3RydWN0IGNt
c2doZHIqIGNvbnRyb2xNZXNzYWdlOwogICAgICAgICBmb3IgKGNvbnRyb2xNZXNzYWdlID0gQ01T
R19GSVJTVEhEUigmbWVzc2FnZSk7IGNvbnRyb2xNZXNzYWdlOyBjb250cm9sTWVzc2FnZSA9IENN
U0dfTlhUSERSKCZtZXNzYWdlLCBjb250cm9sTWVzc2FnZSkpIHsKICAgICAgICAgICAgIGlmIChj
b250cm9sTWVzc2FnZS0+Y21zZ19sZXZlbCA9PSBTT0xfU09DS0VUICYmIGNvbnRyb2xNZXNzYWdl
LT5jbXNnX3R5cGUgPT0gU0NNX1JJR0hUUykgewotICAgICAgICAgICAgICAgIGlmIChjb250cm9s
TWVzc2FnZS0+Y21zZ19sZW4gPCBDTVNHX0xFTigwKSB8fCBjb250cm9sTWVzc2FnZS0+Y21zZ19s
ZW4gPiBhdHRhY2htZW50TWF4QW1vdW50KSB7CisgICAgICAgICAgICAgICAgaWYgKGNvbnRyb2xN
ZXNzYWdlLT5jbXNnX2xlbiA8IENNU0dfTEVOKDApIHx8IGNvbnRyb2xNZXNzYWdlLT5jbXNnX2xl
biA+IENNU0dfTEVOKHNpemVvZihpbnQpICogYXR0YWNobWVudE1heEFtb3VudCkpIHsKICAgICAg
ICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>