<?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>221428</bug_id>
          
          <creation_ts>2021-02-04 14:01:25 -0800</creation_ts>
          <short_desc>WTF::dynamic_cf_cast&lt;&gt; should not assert in Debug builds</short_desc>
          <delta_ts>2021-02-11 11:53:02 -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>Web Template Framework</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=210729</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=221521</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=221767</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="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1725787</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-02-04 14:01:25 -0800</bug_when>
    <thetext>WTF::dynamic_cf_cast&lt;&gt; should not assert in Debug builds.

The proper way to use dynamic_cf_cast&lt;&gt; is to do a nullptr check on its return results, and take action if the cast failed.  One of the most common use cases is when decoding (untrusted) serialized data, and instead of crashing, we just want to fail decoding on that particular chunk serialized data.

In some cases, we may way to add a nullptr check before calling it to differentiate that scenario from the wrong object type being detected.

We never want to use dynamic_cf_cast&lt;&gt; and assume it always succeeds, though.  In that case, we either want to use checked_cf_cast&lt;&gt; instead, or add a nullptr check to handle that scenario.

&lt;rdar://problem/73451079&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725792</commentid>
    <comment_count>1</comment_count>
      <attachid>419318</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-02-04 14:08:43 -0800</bug_when>
    <thetext>Created attachment 419318
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725793</commentid>
    <comment_count>2</comment_count>
      <attachid>419318</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-02-04 14:13:14 -0800</bug_when>
    <thetext>Comment on attachment 419318
Patch v1

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725796</commentid>
    <comment_count>3</comment_count>
      <attachid>419320</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-02-04 14:17:28 -0800</bug_when>
    <thetext>Created attachment 419320
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725797</commentid>
    <comment_count>4</comment_count>
      <attachid>419320</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-02-04 14:18:07 -0800</bug_when>
    <thetext>Comment on attachment 419320
Patch for landing

Added comments about how to use each template function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725823</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-04 15:00:17 -0800</bug_when>
    <thetext>ChangeLog entry in Source/WTF/ChangeLog contains OOPS!.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725826</commentid>
    <comment_count>6</comment_count>
      <attachid>419328</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-02-04 15:17:10 -0800</bug_when>
    <thetext>Created attachment 419328
Patch for landing v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725842</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-04 15:52:43 -0800</bug_when>
    <thetext>Committed r272392: &lt;https://trac.webkit.org/changeset/272392&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 419328.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419318</attachid>
            <date>2021-02-04 14:08:43 -0800</date>
            <delta_ts>2021-02-04 14:25:59 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-221428-20210204140842.patch</filename>
            <type>text/plain</type>
            <size>1250</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMzc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGY0MzgyY2E0M2ZkYTk4YzgzYTNiNzUy
YjQzMGZlOGNjNTA4N2Q2MzYuLjljMWM4MzQ0ZDE2ZWUyN2VhODBmMTAwMmM2ODkyNTUyNGJmYTRh
MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDItMDQgIERhdmlkIEtpbHplciAgPGRka2ls
emVyQGFwcGxlLmNvbT4KKworICAgICAgICBXVEY6OmR5bmFtaWNfY2ZfY2FzdDw+IHNob3VsZCBu
b3QgYXNzZXJ0IGluIERlYnVnIGJ1aWxkcworICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2Iv
MjIxNDI4PgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzM0NTEwNzk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvY2YvVHlwZUNhc3RzQ0Yu
aDoKKyAgICAgICAgKFdURjo6ZHluYW1pY19jZl9jYXN0KToKKyAgICAgICAgLSBSZW1vdmUgQVNT
RVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oKS4KKwogMjAyMS0wMi0wMyAgQWxleCBDaHJp
c3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCBDYXRhbHlz
dCBidWlsZCBhZnRlciByMjcyMjI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9jZi9UeXBl
Q2FzdHNDRi5oIGIvU291cmNlL1dURi93dGYvY2YvVHlwZUNhc3RzQ0YuaAppbmRleCBlMzRmZDZm
MzQ5MzNmMjJhM2U4OTI5NjRlODJlYzY2ZjZjM2IxNTc4Li4xNjNhMjc0NzE2MTY0YTRjYThiZGNj
MTRmZjdhODI5MTU1YTliN2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jZi9UeXBlQ2Fz
dHNDRi5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL2NmL1R5cGVDYXN0c0NGLmgKQEAgLTY3LDcgKzY3
LDYgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gVCBkeW5hbWljX2NmX2Nhc3QoQ0ZUeXBlUmVmIG9i
amVjdCkKICAgICBpZiAoIW9iamVjdCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBB
U1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihDRkdldFR5cGVJRChvYmplY3QpID09IENG
VHlwZVRyYWl0PFQ+Ojp0eXBlSUQoKSk7CiAgICAgaWYgKENGR2V0VHlwZUlEKG9iamVjdCkgIT0g
Q0ZUeXBlVHJhaXQ8VD46OnR5cGVJRCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAo=
</data>
<flag name="review"
          id="437517"
          type_id="1"
          status="+"
          setter="ggaren"
    />
    <flag name="commit-queue"
          id="437524"
          type_id="3"
          status="-"
          setter="ddkilzer"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419320</attachid>
            <date>2021-02-04 14:17:28 -0800</date>
            <delta_ts>2021-02-04 15:17:22 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-221428-20210204141727.patch</filename>
            <type>text/plain</type>
            <size>1871</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMzc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGY0MzgyY2E0M2ZkYTk4YzgzYTNiNzUy
YjQzMGZlOGNjNTA4N2Q2MzYuLjZmYzAxOGFiZTIxYWMxYmQwNTVjMmYyZDZmNmRlNDhlNTU3ZTU2
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDItMDQgIERhdmlkIEtpbHplciAgPGRka2ls
emVyQGFwcGxlLmNvbT4KKworICAgICAgICBXVEY6OmR5bmFtaWNfY2ZfY2FzdDw+IHNob3VsZCBu
b3QgYXNzZXJ0IGluIERlYnVnIGJ1aWxkcworICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2Iv
MjIxNDI4PgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzM0NTEwNzk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvY2YvVHlwZUNhc3RzQ0Yu
aDoKKyAgICAgICAgKFdURjo6ZHluYW1pY19jZl9jYXN0KToKKyAgICAgICAgLSBSZW1vdmUgQVNT
RVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oKS4KKyAgICAgICAgKFdURjo6Y2hlY2tlZF9j
Zl9jYXN0KToKKyAgICAgICAgLSBBZGQgY29tbWVudHMgYWJvdXQgaG93IHRvIHVzZSB0aGVzZSB0
ZW1wbGF0ZSBmdW5jdGlvbnMKKyAgICAgICAgICBjb3JyZWN0bHkuCisKIDIwMjEtMDItMDMgIEFs
ZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBGaXgg
Q2F0YWx5c3QgYnVpbGQgYWZ0ZXIgcjI3MjIyOApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
Y2YvVHlwZUNhc3RzQ0YuaCBiL1NvdXJjZS9XVEYvd3RmL2NmL1R5cGVDYXN0c0NGLmgKaW5kZXgg
ZTM0ZmQ2ZjM0OTMzZjIyYTNlODkyOTY0ZTgyZWM2NmY2YzNiMTU3OC4uZTA5MjBmNmM0NmMwMjFm
YTYzYmY2ZDk2MGM1YzcxZThlMjY4Y2FjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvY2Yv
VHlwZUNhc3RzQ0YuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9UeXBlQ2FzdHNDRi5oCkBAIC02
MiwxOCArNjIsMjAgQEAgV1RGX0RFQ0xBUkVfQ0ZfTVVUQUJMRV9UWVBFX1RSQUlUKENGU3RyaW5n
LCBDRk11dGFibGVTdHJpbmcpOwogCiAjdW5kZWYgV1RGX0RFQ0xBUkVfQ0ZfTVVUQUJMRV9UWVBF
X1RSQUlUCiAKKy8vIFVzZSB0aGlzIGluc3RlYWQgb2YgY2hlY2tlZF9jZl9jYXN0PD4gd2hlbiBh
Y3RpdmVseSBjaGVja2luZyBDRiB0eXBlcywKKy8vIHNpbWlsYXIgdG8gZHluYW1pY19jYXN0PD4g
aW4gQysrLiBCZSBzdXJlIHRvIGluY2x1ZGUgYSBudWxscHRyIGNoZWNrLgogdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gVCBkeW5hbWljX2NmX2Nhc3QoQ0ZUeXBlUmVmIG9iamVjdCkKIHsKICAgICBpZiAo
IW9iamVjdCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBBU1NFUlRfV0lUSF9TRUNV
UklUWV9JTVBMSUNBVElPTihDRkdldFR5cGVJRChvYmplY3QpID09IENGVHlwZVRyYWl0PFQ+Ojp0
eXBlSUQoKSk7CiAgICAgaWYgKENGR2V0VHlwZUlEKG9iamVjdCkgIT0gQ0ZUeXBlVHJhaXQ8VD46
OnR5cGVJRCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxUPihjb25zdF9jYXN0PENGX0JSSURHRURfVFlQRShpZCkgdm9pZCo+KG9iamVjdCkpOwog
fQogCisvLyBVc2UgdGhpcyBpbnN0ZWFkIG9mIGR5bmFtaWNfY2ZfY2FzdDw+IHdoZW4gYSBzcGVj
aWZjIENGIHR5cGUgaXMgcmVxdWlyZWQuCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBUIGNoZWNrZWRf
Y2ZfY2FzdChDRlR5cGVSZWYgb2JqZWN0KQogewogICAgIGlmICghb2JqZWN0KQo=
</data>
<flag name="commit-queue"
          id="437529"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419328</attachid>
            <date>2021-02-04 15:17:10 -0800</date>
            <delta_ts>2021-02-04 15:52:44 -0800</delta_ts>
            <desc>Patch for landing v2</desc>
            <filename>bug-221428-20210204151709.patch</filename>
            <type>text/plain</type>
            <size>1868</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMzc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGY0MzgyY2E0M2ZkYTk4YzgzYTNiNzUy
YjQzMGZlOGNjNTA4N2Q2MzYuLjVjY2NmZGJiODJmNTY5MmI1YjkyZDMzYzE4NGE0YjhkOGE5OTU1
MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDItMDQgIERhdmlkIEtpbHplciAgPGRka2ls
emVyQGFwcGxlLmNvbT4KKworICAgICAgICBXVEY6OmR5bmFtaWNfY2ZfY2FzdDw+IHNob3VsZCBu
b3QgYXNzZXJ0IGluIERlYnVnIGJ1aWxkcworICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2Iv
MjIxNDI4PgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzM0NTEwNzk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgR2VvZmYgR2FyZW4uCisKKyAgICAgICAgKiB3dGYvY2YvVHlwZUNhc3RzQ0YuaDoK
KyAgICAgICAgKFdURjo6ZHluYW1pY19jZl9jYXN0KToKKyAgICAgICAgLSBSZW1vdmUgQVNTRVJU
X1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oKS4KKyAgICAgICAgKFdURjo6Y2hlY2tlZF9jZl9j
YXN0KToKKyAgICAgICAgLSBBZGQgY29tbWVudHMgYWJvdXQgaG93IHRvIHVzZSB0aGVzZSB0ZW1w
bGF0ZSBmdW5jdGlvbnMKKyAgICAgICAgICBjb3JyZWN0bHkuCisKIDIwMjEtMDItMDMgIEFsZXgg
Q2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBGaXggQ2F0
YWx5c3QgYnVpbGQgYWZ0ZXIgcjI3MjIyOApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvY2Yv
VHlwZUNhc3RzQ0YuaCBiL1NvdXJjZS9XVEYvd3RmL2NmL1R5cGVDYXN0c0NGLmgKaW5kZXggZTM0
ZmQ2ZjM0OTMzZjIyYTNlODkyOTY0ZTgyZWM2NmY2YzNiMTU3OC4uZTA5MjBmNmM0NmMwMjFmYTYz
YmY2ZDk2MGM1YzcxZThlMjY4Y2FjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvY2YvVHlw
ZUNhc3RzQ0YuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9UeXBlQ2FzdHNDRi5oCkBAIC02Miwx
OCArNjIsMjAgQEAgV1RGX0RFQ0xBUkVfQ0ZfTVVUQUJMRV9UWVBFX1RSQUlUKENGU3RyaW5nLCBD
Rk11dGFibGVTdHJpbmcpOwogCiAjdW5kZWYgV1RGX0RFQ0xBUkVfQ0ZfTVVUQUJMRV9UWVBFX1RS
QUlUCiAKKy8vIFVzZSB0aGlzIGluc3RlYWQgb2YgY2hlY2tlZF9jZl9jYXN0PD4gd2hlbiBhY3Rp
dmVseSBjaGVja2luZyBDRiB0eXBlcywKKy8vIHNpbWlsYXIgdG8gZHluYW1pY19jYXN0PD4gaW4g
QysrLiBCZSBzdXJlIHRvIGluY2x1ZGUgYSBudWxscHRyIGNoZWNrLgogdGVtcGxhdGU8dHlwZW5h
bWUgVD4gVCBkeW5hbWljX2NmX2Nhc3QoQ0ZUeXBlUmVmIG9iamVjdCkKIHsKICAgICBpZiAoIW9i
amVjdCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklU
WV9JTVBMSUNBVElPTihDRkdldFR5cGVJRChvYmplY3QpID09IENGVHlwZVRyYWl0PFQ+Ojp0eXBl
SUQoKSk7CiAgICAgaWYgKENGR2V0VHlwZUlEKG9iamVjdCkgIT0gQ0ZUeXBlVHJhaXQ8VD46OnR5
cGVJRCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxUPihjb25zdF9jYXN0PENGX0JSSURHRURfVFlQRShpZCkgdm9pZCo+KG9iamVjdCkpOwogfQog
CisvLyBVc2UgdGhpcyBpbnN0ZWFkIG9mIGR5bmFtaWNfY2ZfY2FzdDw+IHdoZW4gYSBzcGVjaWZj
IENGIHR5cGUgaXMgcmVxdWlyZWQuCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBUIGNoZWNrZWRfY2Zf
Y2FzdChDRlR5cGVSZWYgb2JqZWN0KQogewogICAgIGlmICghb2JqZWN0KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>