<?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>170912</bug_id>
          
          <creation_ts>2017-04-17 13:35:27 -0700</creation_ts>
          <short_desc>[iOS, macOS] Guard against passing nullptr to vImagePremultiplyData</short_desc>
          <delta_ts>2017-04-19 09:17:55 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>beidson</cc>
    
    <cc>bfulgham</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>dino</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1297992</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-04-17 13:35:27 -0700</bug_when>
    <thetext>If the system is under heavy memory pressure, it is possible for a calloc to fail, resulting in an ImageBuffer with a nullptr data member.

We should return from an attempt to perform ImageBuffer::putData on a nullptr without taking any action, or perhaps RELEASE_ASSERT that we encountered this case.

Since the memory pressure may be transient, it seems reasonable to just bail out early; a future attempt may succeed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297994</commentid>
    <comment_count>1</comment_count>
      <attachid>307292</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-04-17 13:38:05 -0700</bug_when>
    <thetext>Created attachment 307292
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298399</commentid>
    <comment_count>2</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-04-18 13:12:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/30565800&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298513</commentid>
    <comment_count>3</comment_count>
      <attachid>307292</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-04-18 16:59:42 -0700</bug_when>
    <thetext>Comment on attachment 307292
Patch

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

&gt; Source/WebCore/platform/graphics/cg/ImageBufferDataCG.cpp:444
&gt; +        ASSERT(data);
&gt; +        if (!data)
&gt; +            return;

We can&apos;t really both expect that is&apos; impossible to have a null data (like the assert says) but also expect it is possible to have a null data (like the early return says)

If it&apos;s truly impossible, we need to know why.

If it&apos;s truly possible (such as we commonly get into the case where memory can&apos;t be allocated), then the ASSERT should be dropped.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298521</commentid>
    <comment_count>4</comment_count>
      <attachid>307292</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-04-18 17:16:58 -0700</bug_when>
    <thetext>Comment on attachment 307292
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/cg/ImageBufferDataCG.cpp:444
&gt;&gt; +            return;
&gt; 
&gt; We can&apos;t really both expect that is&apos; impossible to have a null data (like the assert says) but also expect it is possible to have a null data (like the early return says)
&gt; 
&gt; If it&apos;s truly impossible, we need to know why.
&gt; 
&gt; If it&apos;s truly possible (such as we commonly get into the case where memory can&apos;t be allocated), then the ASSERT should be dropped.

Good point. I&apos;ll revise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298522</commentid>
    <comment_count>5</comment_count>
      <attachid>307439</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-04-18 17:17:02 -0700</bug_when>
    <thetext>Created attachment 307439
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298690</commentid>
    <comment_count>6</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-04-19 09:17:55 -0700</bug_when>
    <thetext>Committed r215514: &lt;http://trac.webkit.org/changeset/215514&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307292</attachid>
            <date>2017-04-17 13:38:05 -0700</date>
            <delta_ts>2017-04-18 17:17:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170912-20170417133754.patch</filename>
            <type>text/plain</type>
            <size>1414</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNTQyNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE3LTA0LTE3ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MsIG1hY09TXSBHdWFy
ZCBhZ2FpbnN0IHBhc3NpbmcgbnVsbHB0ciB0byB2SW1hZ2VQcmVtdWx0aXBseURhdGEKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDkxMgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMzA1NjU4MDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckRh
dGFDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckRhdGE6OnB1dERhdGEpOiBD
aGVjayBmb3IgbnVsbHB0ciBkYXRhIG1lbWJlciBhbmQgYXZvaWQgcGFzc2luZyB0byB2SW1hZ2Ug
cm91dGluZXMuCisKIDIwMTctMDQtMTcgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUHJvdmlkZSBhIHZpZXdwb3J0IHBhcmFtZXRlciB0byBkaXNhYmxl
IGNsaXBwaW5nIHRvIHRoZSBzYWZlIGFyZWEKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyRGF0YUNHLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckRhdGFDRy5jcHAJKHJldmlz
aW9uIDIxNTQxNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdl
QnVmZmVyRGF0YUNHLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDM4LDYgKzQzOCwxMSBAQCB2b2lk
IEltYWdlQnVmZmVyRGF0YTo6cHV0RGF0YShVaW50OENsYW1wCiAgICAgCiAgICAgaWYgKCFhY2Nl
bGVyYXRlUmVuZGVyaW5nKSB7CiAgICAgICAgIGRlc3RCeXRlc1BlclJvdyA9IGJ5dGVzUGVyUm93
LnVuc2FmZUdldCgpOworCisgICAgICAgIEFTU0VSVChkYXRhKTsKKyAgICAgICAgaWYgKCFkYXRh
KQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIGRlc3RSb3dzID0gcmVpbnRlcnByZXRf
Y2FzdDx1bnNpZ25lZCBjaGFyKj4oZGF0YSkgKyAoZGVzdHkgKiBkZXN0Qnl0ZXNQZXJSb3cgKyBk
ZXN0eCAqIDQpLnVuc2FmZUdldCgpOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307439</attachid>
            <date>2017-04-18 17:17:02 -0700</date>
            <delta_ts>2017-04-19 09:11:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170912-20170418171701.patch</filename>
            <type>text/plain</type>
            <size>2991</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNTQ4OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE3LTA0LTE3ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MsIG1hY09TXSBHdWFy
ZCBhZ2FpbnN0IHBhc3NpbmcgbnVsbHB0ciB0byB2SW1hZ2VQcmVtdWx0aXBseURhdGEKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDkxMgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMzA1NjU4MDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckRh
dGFDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjphZmZpbmVXYXJwQnVmZmVyRGF0YSk6IEFzc2Vy
dCBpZiB3ZSBwYXNzZWQgbnVsbHB0ciBidWZmZXJzLgorICAgICAgICAoV2ViQ29yZTo6dHJhbnNm
ZXJEYXRhKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckRhdGE6OmdldERh
dGEpOiBDaGVjayBmb3IgbnVsbHB0ciBkYXRhIG1lbWJlciBhbmQgYXZvaWQgcGFzc2luZyB0byB2
SW1hZ2Ugcm91dGluZXMuCisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckRhdGE6OnB1dERh
dGEpOiBEaXR0by4KKwogMjAxNy0wNC0xOCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxl
LmNvbT4KIAogICAgICAgICBNYWtlIFdlYkNvcmU6OnRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oKSByZXR1cm4gImxvY2FsaG9zdCIgZm9yIGxvY2FsaG9zdApJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJEYXRhQ0cuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyRGF0YUNH
LmNwcAkocmV2aXNpb24gMjE1NDg4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvSW1hZ2VCdWZmZXJEYXRhQ0cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtODMsNiArODMs
OSBAQCBzdGF0aWMgdm9pZCBwcmVtdWx0aXBseUJ1ZmZlckRhdGEoY29uc3QgCiAjaWYgIVBMQVRG
T1JNKElPU19TSU1VTEFUT1IpCiBzdGF0aWMgdm9pZCBhZmZpbmVXYXJwQnVmZmVyRGF0YShjb25z
dCB2SW1hZ2VfQnVmZmVyJiBzcmMsIGNvbnN0IHZJbWFnZV9CdWZmZXImIGRlc3QsIGZsb2F0IHNj
YWxlKQogeworICAgIEFTU0VSVChzcmMuZGF0YSk7CisgICAgQVNTRVJUKGRlc3QuZGF0YSk7CisK
ICAgICB2SW1hZ2VfQWZmaW5lVHJhbnNmb3JtIHNjYWxlVHJhbnNmb3JtID0geyBzY2FsZSwgMCwg
MCwgc2NhbGUsIDAsIDAgfTsgLy8gRklYTUU6IEFkZCBzdWJwaXhlbCB0cmFuc2xhdGlvbi4KICAg
ICBQaXhlbF84ODg4IGJhY2tncm91bmRDb2xvcjsKICAgICB2SW1hZ2VBZmZpbmVXYXJwX0FSR0I4
ODg4KCZzcmMsICZkZXN0LCAwLCAmc2NhbGVUcmFuc2Zvcm0sIGJhY2tncm91bmRDb2xvciwga3ZJ
bWFnZUVkZ2VFeHRlbmQpOwpAQCAtOTMsNiArOTYsOSBAQCBzdGF0aWMgdm9pZCBhZmZpbmVXYXJw
QnVmZmVyRGF0YShjb25zdCB2CiBzdGF0aWMgaW5saW5lIHZvaWQgdHJhbnNmZXJEYXRhKHZvaWQq
IG91dHB1dCwgdm9pZCogaW5wdXQsIGludCB3aWR0aCwgaW50IGhlaWdodCwgc2l6ZV90IGlucHV0
Qnl0ZXNQZXJSb3cpCiB7CiAjaWYgVVNFKEFDQ0VMRVJBVEUpCisgICAgQVNTRVJUKGlucHV0KTsK
KyAgICBBU1NFUlQob3V0cHV0KTsKKwogICAgIHZJbWFnZV9CdWZmZXIgc3JjOwogICAgIHNyYy53
aWR0aCA9IHdpZHRoOwogICAgIHNyYy5oZWlnaHQgPSBoZWlnaHQ7CkBAIC0xOTQsNiArMjAwLDkg
QEAgUmVmUHRyPFVpbnQ4Q2xhbXBlZEFycmF5PiBJbWFnZUJ1ZmZlckRhdAogICAgIHVuc2lnbmVk
IGNoYXIqIHNyY1Jvd3M7CiAgICAgCiAgICAgaWYgKCFhY2NlbGVyYXRlUmVuZGVyaW5nKSB7Cisg
ICAgICAgIGlmICghZGF0YSkKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisKICAgICAgICAg
c3JjQnl0ZXNQZXJSb3cgPSBieXRlc1BlclJvdy51bnNhZmVHZXQoKTsKICAgICAgICAgc3JjUm93
cyA9IHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQgY2hhcio+KGRhdGEpICsgb3JpZ2lueSAqIHNy
Y0J5dGVzUGVyUm93ICsgb3JpZ2lueCAqIDQ7CiAKQEAgLTQzNyw2ICs0NDYsOSBAQCB2b2lkIElt
YWdlQnVmZmVyRGF0YTo6cHV0RGF0YShVaW50OENsYW1wCiAgICAgdW5zaWduZWQgY2hhciogZGVz
dFJvd3M7CiAgICAgCiAgICAgaWYgKCFhY2NlbGVyYXRlUmVuZGVyaW5nKSB7CisgICAgICAgIGlm
ICghZGF0YSkKKyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICBkZXN0Qnl0ZXNQZXJSb3cg
PSBieXRlc1BlclJvdy51bnNhZmVHZXQoKTsKICAgICAgICAgZGVzdFJvd3MgPSByZWludGVycHJl
dF9jYXN0PHVuc2lnbmVkIGNoYXIqPihkYXRhKSArIChkZXN0eSAqIGRlc3RCeXRlc1BlclJvdyAr
IGRlc3R4ICogNCkudW5zYWZlR2V0KCk7CiAK
</data>
<flag name="review"
          id="328719"
          type_id="1"
          status="+"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>