<?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>77718</bug_id>
          
          <creation_ts>2012-02-02 22:58:00 -0800</creation_ts>
          <short_desc>SharedBuffer::getSomeData() must support m_dataArray if NETWORK_CFDATA_ARRAY_CALLBACK is defined</short_desc>
          <delta_ts>2012-02-13 17:29:17 -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>Page Loading</component>
          <version>528+ (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>EasyFix, InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>77799</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>ap</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>kling</cc>
    
    <cc>psolanki</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>548478</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-02-02 22:58:00 -0800</bug_when>
    <thetext>We ignore the data of m_dataArray at the moment, which causes crashes in many tests.

Radar: &lt;rdar://problem/10786745&gt;
Related to https://bugs.webkit.org/show_bug.cgi?id=77715

Patch coming after I get some sleep :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549119</commentid>
    <comment_count>1</comment_count>
      <attachid>125422</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-02-03 14:48:11 -0800</bug_when>
    <thetext>Created attachment 125422
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549230</commentid>
    <comment_count>2</comment_count>
      <attachid>125422</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-02-03 16:40:43 -0800</bug_when>
    <thetext>Comment on attachment 125422
Patch

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

Thinking about it...here is a couple more ASSERT() to avoid future problems. Tell me if you can think of useful additional ones.

&gt; Source/WebCore/platform/SharedBuffer.cpp:261
&gt; +        someData = m_segments[segment] + positionInSegment;

ASSERT(segment &lt; m_segments.size());

&gt; Source/WebCore/platform/SharedBuffer.cpp:265
&gt; +    position -= maxSegmentedSize;

ASSERT(maxSegmentedSize &lt;= position);

&gt; Source/WebCore/platform/cf/SharedBufferCF.cpp:125
&gt; +        unsigned localOffset = position - totalOffset;

ASSERT(totalOffset &lt;= position);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549296</commentid>
    <comment_count>3</comment_count>
      <attachid>125422</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2012-02-03 18:01:49 -0800</bug_when>
    <thetext>Comment on attachment 125422
Patch

Patch looks fine to me. But yeah, we should really fix bug 77715. I&apos;m surprised this was all working so far with this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554783</commentid>
    <comment_count>4</comment_count>
      <attachid>125422</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2012-02-11 21:41:48 -0800</bug_when>
    <thetext>Comment on attachment 125422
Patch

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

r=me

&gt;&gt; Source/WebCore/platform/SharedBuffer.cpp:261
&gt;&gt; +        someData = m_segments[segment] + positionInSegment;
&gt; 
&gt; ASSERT(segment &lt; m_segments.size());

This is a redundant ASSERT().  It will always be true inside this if statement because it&apos;s already checking (segment &lt; segments) and segments = m_segments.size().

&gt; Source/WebCore/platform/SharedBuffer.cpp:269
&gt; +#endif
&gt; +    ASSERT_NOT_REACHED();
&gt; +    return 0;

The last part of this method should be in an #else/#endif clause:

#else
    ASSERT_NOT_REACHED();
    return 0;
#endif

&gt; Source/WebCore/platform/cf/SharedBufferCF.cpp:121
&gt; +    Vector&lt;RetainPtr&lt;CFDataRef&gt; &gt;::const_iterator end = m_dataArray.end();

Nit: Might be nice to have a typedef for Vector&lt;RetainPtr&lt;CFDataRef&gt; &gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554787</commentid>
    <comment_count>5</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-02-11 22:09:35 -0800</bug_when>
    <thetext>It is &lt;rdar://problem/10801705&gt;
Sorry David.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555796</commentid>
    <comment_count>6</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-02-13 17:28:16 -0800</bug_when>
    <thetext>Committed r107648: &lt;http://trac.webkit.org/changeset/107648&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555797</commentid>
    <comment_count>7</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-02-13 17:29:17 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebCore/platform/cf/SharedBufferCF.cpp:121
&gt; &gt; +    Vector&lt;RetainPtr&lt;CFDataRef&gt; &gt;::const_iterator end = m_dataArray.end();
&gt; 
&gt; Nit: Might be nice to have a typedef for Vector&lt;RetainPtr&lt;CFDataRef&gt; &gt;.

This is a good idea for the whole class.

I&apos;ll fix that separately: https://bugs.webkit.org/show_bug.cgi?id=78552</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125422</attachid>
            <date>2012-02-03 14:48:11 -0800</date>
            <delta_ts>2012-02-11 21:41:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77718-20120203144810.patch</filename>
            <type>text/plain</type>
            <size>4855</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2NjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2QxMGI0ZjY0M2E2YTY5
NjQ0ODZiYTQ0MzQ3YmZhYTk4Yzg5ZGRlYi4uMmU4NGFiYjIzOTJlNzc3MjcxZTVhNGI3MTAyNmRh
MTk5ZDAwMzYwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTAyLTAzICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIFNoYXJlZEJ1ZmZl
cjo6Z2V0U29tZURhdGEoKSBtdXN0IHN1cHBvcnQgbV9kYXRhQXJyYXkgaWYgTkVUV09SS19DRkRB
VEFfQVJSQVlfQ0FMTEJBQ0sgaXMgZGVmaW5lZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc3MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBQcmV2aW91c2x5LCB0aGUgbGFzdCBwYXJ0IG9mIFNoYXJlZEJ1
ZmZlcjo6Z2V0U29tZURhdGEoKSB3YXMgc3lzdGVtYXRpY2FsbHkgYWNjZXNzaW5nCisgICAgICAg
IHRoZSBkYXRhIGZyb20gdGhlIHNlZ21lbnRzLiBXaGVuIE5FVFdPUktfQ0ZEQVRBX0FSUkFZX0NB
TExCQUNLIGlzIGRlZmluZWQsIHRoZXJlIGNhbgorICAgICAgICBiZSBkYXRhIGluIG1fZGF0YUFy
cmF5IHBhc3QgdGhlIHNlZ21lbnQuCisKKyAgICAgICAgVGhlIHByZXZpb3VzIGNvZGUgd2FzIG1h
a2luZyBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MgcGFzcyB0aGUgc2VnbWVudCB2ZWN0b3IuIFRoaXMg
cGF0Y2gKKyAgICAgICAgYWRkcyBzdXBwb3J0IGZvciBnZXR0aW5nIHRoZSBkYXRhIG91dCBvZiBt
X2RhdGFBcnJheSB0byBtYWtlIFNoYXJlZEJ1ZmZlcjo6Z2V0U29tZURhdGEoKQorICAgICAgICB3
b3JrcyB3aXRoIE5FVFdPUktfQ0ZEQVRBX0FSUkFZX0NBTExCQUNLLgorCisgICAgICAgIFRoaXMg
aXMgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cyB3aGVuIE5FVFdPUktfQ0ZEQVRBX0FSUkFZX0NB
TExCQUNLIGlzIGRlZmluZWQuCisgICAgICAgIFRoZSB0ZXN0ICdmYXN0L2V2ZW50cy9jb25zdHJ1
Y3RvcnMvdHJhY2stZXZlbnQtY29uc3RydWN0b3IuaHRtbCcgaXMgYSByZWxpYWJsZSB0ZXN0Cisg
ICAgICAgIGZvciB0aGlzLgorCisgICAgICAgICogcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Z2V0U29tZURhdGEpOgorICAgICAgICAq
IHBsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oOgorICAgICAgICAoU2hhcmVkQnVmZmVyKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9jZi9TaGFyZWRCdWZmZXJDRi5jcHA6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y29weVNvbWVEYXRhRnJvbURhdGFBcnJh
eSk6CisKIDIwMTItMDItMDIgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFR1cm4gb24gQ1NTIEZpbHRlcnMgb24gV2luZG93cwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1NoYXJlZEJ1ZmZlci5jcHAKaW5kZXggNzdhZWYyYWE3YTVhZTEwYzVhZTVjNWI0MGY2Nzcz
OTczOTBiNTc5MS4uMGVmYmRkNTQ0ZjYwNzUyN2E3ZDVjMDgyY2IyNzI3OGYyZDZiZDU3YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3BwCkBAIC0yNTAsMTQgKzI1MCwy
MyBAQCB1bnNpZ25lZCBTaGFyZWRCdWZmZXI6OmdldFNvbWVEYXRhKGNvbnN0IGNoYXIqJiBzb21l
RGF0YSwgdW5zaWduZWQgcG9zaXRpb24pIGNvbgogICAgIH0KICAKICAgICBwb3NpdGlvbiAtPSBj
b25zZWN1dGl2ZVNpemU7Ci0gICAgdW5zaWduZWQgc2VnbWVudGVkU2l6ZSA9IG1fc2l6ZSAtIGNv
bnNlY3V0aXZlU2l6ZTsKICAgICB1bnNpZ25lZCBzZWdtZW50cyA9IG1fc2VnbWVudHMuc2l6ZSgp
OworICAgIHVuc2lnbmVkIG1heFNlZ21lbnRlZFNpemUgPSBzZWdtZW50cyAqIHNlZ21lbnRTaXpl
OwogICAgIHVuc2lnbmVkIHNlZ21lbnQgPSBzZWdtZW50SW5kZXgocG9zaXRpb24pOwotICAgIEFT
U0VSVChzZWdtZW50IDwgc2VnbWVudHMpOworICAgIGlmIChzZWdtZW50IDwgc2VnbWVudHMpIHsK
KyAgICAgICAgdW5zaWduZWQgYnl0ZXNMZWZ0ID0gbV9zaXplIC0gY29uc2VjdXRpdmVTaXplOwor
ICAgICAgICB1bnNpZ25lZCBzZWdtZW50ZWRTaXplID0gbWluKG1heFNlZ21lbnRlZFNpemUsIGJ5
dGVzTGVmdCk7CiAKLSAgICB1bnNpZ25lZCBwb3NpdGlvbkluU2VnbWVudCA9IG9mZnNldEluU2Vn
bWVudChwb3NpdGlvbik7Ci0gICAgc29tZURhdGEgPSBtX3NlZ21lbnRzW3NlZ21lbnRdICsgcG9z
aXRpb25JblNlZ21lbnQ7Ci0gICAgcmV0dXJuIHNlZ21lbnQgPT0gc2VnbWVudHMgLSAxID8gc2Vn
bWVudGVkU2l6ZSAtIHBvc2l0aW9uIDogc2VnbWVudFNpemUgLSBwb3NpdGlvbkluU2VnbWVudDsK
KyAgICAgICAgdW5zaWduZWQgcG9zaXRpb25JblNlZ21lbnQgPSBvZmZzZXRJblNlZ21lbnQocG9z
aXRpb24pOworICAgICAgICBzb21lRGF0YSA9IG1fc2VnbWVudHNbc2VnbWVudF0gKyBwb3NpdGlv
bkluU2VnbWVudDsKKyAgICAgICAgcmV0dXJuIHNlZ21lbnQgPT0gc2VnbWVudHMgLSAxID8gc2Vn
bWVudGVkU2l6ZSAtIHBvc2l0aW9uIDogc2VnbWVudFNpemUgLSBwb3NpdGlvbkluU2VnbWVudDsK
KyAgICB9CisjaWYgSEFWRShORVRXT1JLX0NGREFUQV9BUlJBWV9DQUxMQkFDSykKKyAgICBwb3Np
dGlvbiAtPSBtYXhTZWdtZW50ZWRTaXplOworICAgIHJldHVybiBjb3B5U29tZURhdGFGcm9tRGF0
YUFycmF5KHNvbWVEYXRhLCBwb3NpdGlvbik7CisjZW5kaWYKKyAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICByZXR1cm4gMDsKIH0KIAogI2lmICFVU0UoQ0YpIHx8IFBMQVRGT1JNKFFUKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaAppbmRleCA1N2NmYzI5NDllNmI1YWRl
NzY3OTY4YmI1MmYxYzhkNjMzNjk2NjE3Li5mZTNlNGI2Yjg5MzU3NmI0Y2ZlMWE1Y2ZhYjA2NTlm
MWRhMTc2ZmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZm
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaApAQCAtMTM2
LDYgKzEzNiw3IEBAIHByaXZhdGU6CiAjaWYgSEFWRShORVRXT1JLX0NGREFUQV9BUlJBWV9DQUxM
QkFDSykKICAgICBtdXRhYmxlIFZlY3RvcjxSZXRhaW5QdHI8Q0ZEYXRhUmVmPiA+IG1fZGF0YUFy
cmF5OwogICAgIHZvaWQgY29weURhdGFBcnJheUFuZENsZWFyKGNoYXIgKmRlc3RpbmF0aW9uLCB1
bnNpZ25lZCBieXRlc1RvQ29weSkgY29uc3Q7CisgICAgdW5zaWduZWQgY29weVNvbWVEYXRhRnJv
bURhdGFBcnJheShjb25zdCBjaGFyKiYgc29tZURhdGEsIHVuc2lnbmVkIHBvc2l0aW9uKSBjb25z
dDsKICNlbmRpZgogI2lmIFVTRShDRikKICAgICBTaGFyZWRCdWZmZXIoQ0ZEYXRhUmVmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL1NoYXJlZEJ1ZmZlckNGLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL1NoYXJlZEJ1ZmZlckNGLmNwcAppbmRleCAzMGE1
ZTg5MGNmMjVmYWIxNjQ2NmE0NDU1MDQyNzU5YzM5ZjcwNTRlLi42ZWVjMDk2MWYxOGE5MDgzYWU5
MDU5ZjE2MDE0MDM3MjBmMDBjYzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jZi9TaGFyZWRCdWZmZXJDRi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2Yv
U2hhcmVkQnVmZmVyQ0YuY3BwCkBAIC0xMTUsNiArMTE1LDIyIEBAIHZvaWQgU2hhcmVkQnVmZmVy
Ojpjb3B5RGF0YUFycmF5QW5kQ2xlYXIoY2hhciAqZGVzdGluYXRpb24sIHVuc2lnbmVkIGJ5dGVz
VG9Db3B5CiAgICAgfQogICAgIG1fZGF0YUFycmF5LmNsZWFyKCk7CiB9CisKK3Vuc2lnbmVkIFNo
YXJlZEJ1ZmZlcjo6Y29weVNvbWVEYXRhRnJvbURhdGFBcnJheShjb25zdCBjaGFyKiYgc29tZURh
dGEsIHVuc2lnbmVkIHBvc2l0aW9uKSBjb25zdAoreworICAgIFZlY3RvcjxSZXRhaW5QdHI8Q0ZE
YXRhUmVmPiA+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBtX2RhdGFBcnJheS5lbmQoKTsKKyAgICB1
bnNpZ25lZCB0b3RhbE9mZnNldCA9IDA7CisgICAgZm9yIChWZWN0b3I8UmV0YWluUHRyPENGRGF0
YVJlZj4gPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2RhdGFBcnJheS5iZWdpbigpOyBpdCAhPSBl
bmQ7ICsraXQpIHsKKyAgICAgICAgdW5zaWduZWQgZGF0YUxlbiA9IHN0YXRpY19jYXN0PHVuc2ln
bmVkPihDRkRhdGFHZXRMZW5ndGgoaXQtPmdldCgpKSk7CisgICAgICAgIHVuc2lnbmVkIGxvY2Fs
T2Zmc2V0ID0gcG9zaXRpb24gLSB0b3RhbE9mZnNldDsKKyAgICAgICAgaWYgKGxvY2FsT2Zmc2V0
IDwgZGF0YUxlbikgeworICAgICAgICAgICAgc29tZURhdGEgPSByZWludGVycHJldF9jYXN0PGNv
bnN0IGNoYXIgKj4oQ0ZEYXRhR2V0Qnl0ZVB0cihpdC0+Z2V0KCkpKSArIGxvY2FsT2Zmc2V0Owor
ICAgICAgICAgICAgcmV0dXJuIGRhdGFMZW4gLSBsb2NhbE9mZnNldDsKKyAgICAgICAgfQorICAg
ICAgICB0b3RhbE9mZnNldCArPSBkYXRhTGVuOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KICNl
bmRpZgogCiB9Cg==
</data>
<flag name="review"
          id="126921"
          type_id="1"
          status="+"
          setter="ddkilzer"
    />
    <flag name="commit-queue"
          id="128536"
          type_id="3"
          status="-"
          setter="ddkilzer"
    />
          </attachment>
      

    </bug>

</bugzilla>