<?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>182490</bug_id>
          
          <creation_ts>2018-02-05 09:33:39 -0800</creation_ts>
          <short_desc>[GTK] WaylandCompositor misusing eglGetProcAddress</short_desc>
          <delta_ts>2018-03-28 09:30:11 -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>WebKit 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.freedesktop.org/show_bug.cgi?id=104949</see_also>
    
    <see_also>https://bugzilla.redhat.com/show_bug.cgi?id=1518674</see_also>
    
    <see_also>https://bugzilla.redhat.com/show_bug.cgi?id=1553894</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Stone">daniel</reporter>
          <assigned_to name="Miguel Gomez">magomez</assigned_to>
          <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fcrozat</cc>
    
    <cc>magomez</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1396338</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Stone">daniel</who>
    <bug_when>2018-02-05 09:33:39 -0800</bug_when>
    <thetext>In WaylandCompositor.cpp&apos;s initializeEGL(), eglBindWaylandDisplayWL() is called if eglGetProcAddress() returns any value for it. This causes a crash on newer Mesa when using software rendering: swrast drivers do not provide BindWaylandDisplay (as they rely on wl_shm instead of Mesa extensions), and newer Mesa asserts that the extension is enabled when the entrypoint is called.

The trivial fix would be to check for the extension&apos;s presence and fail initializeEGL() if they are not there.

The Mesa bug is here: https://bugs.freedesktop.org/show_bug.cgi?id=104949</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396372</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-02-05 10:27:40 -0800</bug_when>
    <thetext>Mesa devs say &quot;[WebKit] seems to be doing the most common and silly mistakes - uses the function pointers w/o checking for the extension string&quot; in the upstream bug. We need to make sure we get this right everywhere, not just WaylandCompositor.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397166</commentid>
    <comment_count>2</comment_count>
      <attachid>333283</attachid>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2018-02-07 08:09:21 -0800</bug_when>
    <thetext>Created attachment 333283
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397169</commentid>
    <comment_count>3</comment_count>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2018-02-07 08:11:35 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #1)
&gt; Mesa devs say &quot;[WebKit] seems to be doing the most common and silly mistakes
&gt; - uses the function pointers w/o checking for the extension string&quot; in the
&gt; upstream bug. We need to make sure we get this right everywhere, not just
&gt; WaylandCompositor.cpp.

I&apos;ve fixed WaylandCompositor.cpp. The rest of the places calling eglGetProcAddress seem to be properly checking for the required extensions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397186</commentid>
    <comment_count>4</comment_count>
      <attachid>333283</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-02-07 08:35:36 -0800</bug_when>
    <thetext>Comment on attachment 333283
Patch

Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397187</commentid>
    <comment_count>5</comment_count>
    <who name="Daniel Stone">daniel</who>
    <bug_when>2018-02-07 08:41:48 -0800</bug_when>
    <thetext>Don&apos;t think my r+ etc counts here, but LGTM anyway!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397517</commentid>
    <comment_count>6</comment_count>
      <attachid>333283</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-08 06:05:17 -0800</bug_when>
    <thetext>Comment on attachment 333283
Patch

Clearing flags on attachment: 333283

Committed r228272: &lt;https://trac.webkit.org/changeset/228272&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397518</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-08 06:05:18 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1403225</commentid>
    <comment_count>8</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-03-02 08:26:10 -0800</bug_when>
    <thetext>*** Bug 183289 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333283</attachid>
            <date>2018-02-07 08:09:21 -0800</date>
            <delta_ts>2018-02-08 06:05:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182490-20180207170919.patch</filename>
            <type>text/plain</type>
            <size>5020</size>
            <attacher name="Miguel Gomez">magomez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4MjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE3NWQ2ZjczZDJjYjZkNTJl
NTgzYTIwNDc3MzQ3MDc0ZDFlMjEyZDkuLjhiMWYxNGExNTgwODU1NTMyM2JjYmM5NTllNmQ1ZGQ5
MzYwMTAxZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTgtMDItMDcgIE1pZ3VlbCBH
b21leiAgPG1hZ29tZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBXYXlsYW5kQ29tcG9z
aXRvciBtaXN1c2luZyBlZ2xHZXRQcm9jQWRkcmVzcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyNDkwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hlY2sgdGhhdCB0aGUgYXBwcm9wcmlhdGUgZXh0ZW5z
aW9ucyBhcmUgYXZhaWxhYmxlIGJlZm9yZSBjYWxsaW5nIGVnbEdldFByb2NBZGRyZXNzLCBhcyBl
dmVuCisgICAgICAgIGdldHRpbmcgYSBub24gbnVsbCB2YWx1ZSBmcm9tIGl0LCB0aGUgZnVuY3Rp
b25hbGl0eSBjYW4gYmUgZGlzYWJsZWQgYXQgcnVudGltZS4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9ndGsvV2F5bGFuZENvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpXYXlsYW5kQ29t
cG9zaXRvcjo6aW5pdGlhbGl6ZUVHTCk6CisKIDIwMTgtMDItMDYgIERvbiBPbG1zdGVhZCAgPGRv
bi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBSZW1vdmUgV2ViQ29yZS9Gb3J3YXJkaW5n
SGVhZGVycyBkaXJlY3RvcnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0
ay9XYXlsYW5kQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2F5
bGFuZENvbXBvc2l0b3IuY3BwCmluZGV4IGI2YWI4NjQ3ZjI1YzNlYTU2YzJkZTk4MWU4Y2NiZTFi
ZWVmNjBiOGMuLjZiMDliMWZmMmY5YTk5MTc5MTExNGEyYjdhNWI5OTRiMmVmN2RiYTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dheWxhbmRDb21wb3NpdG9yLmNwcApA
QCAtNDAsNyArNDAsOSBAQAogI2lmIFVTRShPUEVOR0xfRVNfMikKICNpbmNsdWRlIDxHTEVTMi9n
bDIuaD4KICNpbmNsdWRlIDxHTEVTMi9nbDJleHQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0V4dGVu
c2lvbnMzRE9wZW5HTEVTLmg+CiAjZWxzZQorI2luY2x1ZGUgPFdlYkNvcmUvRXh0ZW5zaW9uczNE
T3BlbkdMLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9PcGVuR0xTaGltcy5oPgogI2VuZGlmCiAKQEAg
LTM3MywxMSArMzc1LDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgd2xfd2Via2l0Z3RrX2ludGVy
ZmFjZSB3ZWJraXRndGtJbnRlcmZhY2UgPSB7CiAKIGJvb2wgV2F5bGFuZENvbXBvc2l0b3I6Omlu
aXRpYWxpemVFR0woKQogeworICAgIGNvbnN0IGNoYXIqIGV4dGVuc2lvbnMgPSBlZ2xRdWVyeVN0
cmluZyhQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKS5lZ2xEaXNwbGF5KCksIEVHTF9F
WFRFTlNJT05TKTsKKwogICAgIGlmIChQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKS5l
Z2xDaGVja1ZlcnNpb24oMSwgNSkpIHsKICAgICAgICAgZWdsQ3JlYXRlSW1hZ2UgPSByZWludGVy
cHJldF9jYXN0PFBGTkVHTENSRUFURUlNQUdFS0hSUFJPQz4oZWdsR2V0UHJvY0FkZHJlc3MoImVn
bENyZWF0ZUltYWdlIikpOwogICAgICAgICBlZ2xEZXN0cm95SW1hZ2UgPSByZWludGVycHJldF9j
YXN0PFBGTkVHTERFU1RST1lJTUFHRUtIUlBST0M+KGVnbEdldFByb2NBZGRyZXNzKCJlZ2xEZXN0
cm95SW1hZ2UiKSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgY29uc3QgY2hhciogZXh0ZW5zaW9u
cyA9IGVnbFF1ZXJ5U3RyaW5nKFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpLmVnbERp
c3BsYXkoKSwgRUdMX0VYVEVOU0lPTlMpOwogICAgICAgICBpZiAoR0xDb250ZXh0Ojppc0V4dGVu
c2lvblN1cHBvcnRlZChleHRlbnNpb25zLCAiRUdMX0tIUl9pbWFnZV9iYXNlIikpIHsKICAgICAg
ICAgICAgIGVnbENyZWF0ZUltYWdlID0gcmVpbnRlcnByZXRfY2FzdDxQRk5FR0xDUkVBVEVJTUFH
RUtIUlBST0M+KGVnbEdldFByb2NBZGRyZXNzKCJlZ2xDcmVhdGVJbWFnZUtIUiIpKTsKICAgICAg
ICAgICAgIGVnbERlc3Ryb3lJbWFnZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZORUdMREVTVFJPWUlN
QUdFS0hSUFJPQz4oZWdsR2V0UHJvY0FkZHJlc3MoImVnbERlc3Ryb3lJbWFnZUtIUiIpKTsKQEAg
LTM4OCwyMiArMzkxLDEzIEBAIGJvb2wgV2F5bGFuZENvbXBvc2l0b3I6OmluaXRpYWxpemVFR0wo
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgZ2xJbWFnZVRhcmdldFRleHR1
cmUyRCA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZOR0xFR0xJTUFHRVRBUkdFVFRFWFRVUkUyRE9FU1BS
T0M+KGVnbEdldFByb2NBZGRyZXNzKCJnbEVHTEltYWdlVGFyZ2V0VGV4dHVyZTJET0VTIikpOwot
ICAgIGlmICghZ2xJbWFnZVRhcmdldFRleHR1cmUyRCkgewotICAgICAgICBXVEZMb2dBbHdheXMo
IldheWxhbmRDb21wb3NpdG9yIHJlcXVpcmVzIGdsRUdMSW1hZ2VUYXJnZXRUZXh0dXJlMkQuIik7
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoR0xDb250ZXh0Ojppc0V4dGVuc2lvblN1
cHBvcnRlZChleHRlbnNpb25zLCAiRUdMX1dMX2JpbmRfd2F5bGFuZF9kaXNwbGF5IikpIHsKKyAg
ICAgICAgZWdsQmluZFdheWxhbmREaXNwbGF5ID0gcmVpbnRlcnByZXRfY2FzdDxQRk5FR0xCSU5E
V0FZTEFORERJU1BMQVlXTD4oZWdsR2V0UHJvY0FkZHJlc3MoImVnbEJpbmRXYXlsYW5kRGlzcGxh
eVdMIikpOworICAgICAgICBlZ2xVbmJpbmRXYXlsYW5kRGlzcGxheSA9IHJlaW50ZXJwcmV0X2Nh
c3Q8UEZORUdMVU5CSU5EV0FZTEFORERJU1BMQVlXTD4oZWdsR2V0UHJvY0FkZHJlc3MoImVnbFVu
YmluZFdheWxhbmREaXNwbGF5V0wiKSk7CisgICAgICAgIGVnbFF1ZXJ5V2F5bGFuZEJ1ZmZlciA9
IHJlaW50ZXJwcmV0X2Nhc3Q8UEZORUdMUVVFUllXQVlMQU5EQlVGRkVSV0w+KGVnbEdldFByb2NB
ZGRyZXNzKCJlZ2xRdWVyeVdheWxhbmRCdWZmZXJXTCIpKTsKICAgICB9Ci0KLSAgICBlZ2xRdWVy
eVdheWxhbmRCdWZmZXIgPSByZWludGVycHJldF9jYXN0PFBGTkVHTFFVRVJZV0FZTEFOREJVRkZF
UldMPihlZ2xHZXRQcm9jQWRkcmVzcygiZWdsUXVlcnlXYXlsYW5kQnVmZmVyV0wiKSk7Ci0gICAg
aWYgKCFlZ2xRdWVyeVdheWxhbmRCdWZmZXIpIHsKLSAgICAgICAgV1RGTG9nQWx3YXlzKCJXYXls
YW5kQ29tcG9zaXRvciByZXF1aXJlcyBlZ2xRdWVyeVdheWxhbmRCdWZmZXIuIik7Ci0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBlZ2xCaW5kV2F5bGFuZERpc3BsYXkgPSByZWlu
dGVycHJldF9jYXN0PFBGTkVHTEJJTkRXQVlMQU5ERElTUExBWVdMPihlZ2xHZXRQcm9jQWRkcmVz
cygiZWdsQmluZFdheWxhbmREaXNwbGF5V0wiKSk7Ci0gICAgZWdsVW5iaW5kV2F5bGFuZERpc3Bs
YXkgPSByZWludGVycHJldF9jYXN0PFBGTkVHTFVOQklORFdBWUxBTkRESVNQTEFZV0w+KGVnbEdl
dFByb2NBZGRyZXNzKCJlZ2xVbmJpbmRXYXlsYW5kRGlzcGxheVdMIikpOwotICAgIGlmICghZWds
QmluZFdheWxhbmREaXNwbGF5IHx8ICFlZ2xVbmJpbmRXYXlsYW5kRGlzcGxheSkgewotICAgICAg
ICBXVEZMb2dBbHdheXMoIldheWxhbmRDb21wb3NpdG9yIHJlcXVpcmVzIGVnbEJpbmRXYXlsYW5k
RGlzcGxheVdMIGFuZCBlZ2xVbmJpbmRXYXlsYW5kRGlzcGxheVdMLiIpOworICAgIGlmICghZWds
QmluZFdheWxhbmREaXNwbGF5IHx8ICFlZ2xVbmJpbmRXYXlsYW5kRGlzcGxheSB8fCAhZWdsUXVl
cnlXYXlsYW5kQnVmZmVyKSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiV2F5bGFuZENvbXBvc2l0
b3IgcmVxdWlyZXMgZWdsQmluZFdheWxhbmREaXNwbGF5V0wsIGVnbFVuYmluZFdheWxhbmREaXNw
bGF5V0wgYW5kIGVnbFF1ZXJ5V2F5bGFuZEJ1ZmZlci4iKTsKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KIApAQCAtNDE0LDYgKzQwOCwxOSBAQCBib29sIFdheWxhbmRDb21wb3NpdG9yOjpp
bml0aWFsaXplRUdMKCkKICAgICBpZiAoIW1fZWdsQ29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorI2lmIFVTRShPUEVOR0xfRVNfMikKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8RXh0ZW5zaW9uczNET3BlbkdMRVM+IGdsRXh0ZW5zaW9ucyA9IHN0ZDo6
bWFrZV91bmlxdWU8RXh0ZW5zaW9uczNET3BlbkdMRVM+KG51bGxwdHIsICBmYWxzZSk7CisjZWxz
ZQorICAgIHN0ZDo6dW5pcXVlX3B0cjxFeHRlbnNpb25zM0RPcGVuR0w+IGdsRXh0ZW5zaW9ucyA9
IHN0ZDo6bWFrZV91bmlxdWU8RXh0ZW5zaW9uczNET3BlbkdMPihudWxscHRyLCBHTENvbnRleHQ6
OmN1cnJlbnQoKS0+dmVyc2lvbigpID49IDMyMCk7CisjZW5kaWYKKyAgICBpZiAoZ2xFeHRlbnNp
b25zLT5zdXBwb3J0cygiR0xfT0VTX0VHTF9pbWFnZSIpIHx8IGdsRXh0ZW5zaW9ucy0+c3VwcG9y
dHMoIkdMX09FU19FR0xfaW1hZ2VfZXh0ZXJuYWwiKSkKKyAgICAgICAgZ2xJbWFnZVRhcmdldFRl
eHR1cmUyRCA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZOR0xFR0xJTUFHRVRBUkdFVFRFWFRVUkUyRE9F
U1BST0M+KGVnbEdldFByb2NBZGRyZXNzKCJnbEVHTEltYWdlVGFyZ2V0VGV4dHVyZTJET0VTIikp
OworCisgICAgaWYgKCFnbEltYWdlVGFyZ2V0VGV4dHVyZTJEKSB7CisgICAgICAgIFdURkxvZ0Fs
d2F5cygiV2F5bGFuZENvbXBvc2l0b3IgcmVxdWlyZXMgZ2xFR0xJbWFnZVRhcmdldFRleHR1cmUy
RC4iKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwogICAgIHJldHVybiB0cnVlOwog
fQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>