<?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>68307</bug_id>
          
          <creation_ts>2011-09-16 22:08:22 -0700</creation_ts>
          <short_desc>Crash in WebCore::CSSBorderImageValue::cssText</short_desc>
          <delta_ts>2011-09-17 16:11:25 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Silverberg">csilv</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          <cc>ap</cc>
    
    <cc>dbeam</cc>
    
    <cc>hyatt</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>469022</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Silverberg">csilv</who>
    <bug_when>2011-09-16 22:08:22 -0700</bug_when>
    <thetext>The following javascript snippit will lead to a crash in WebCore::CSSBorderImageValue::cssText:

  var el = document.getElementById(&apos;bar&apos;);
  el.style.WebkitMaskBoxImage = &apos;-webkit-linear-gradient(red,green,blue)&apos;;
  console.log(el.style);

This is a regression that was introduced in r95099.  The problem with the above snippit is that we are not providing a &apos;slice&apos; value.  Prior to r95099, CSSParser::parseBorderImage would always set a slice value if one was not provided.  With the recent changes, a default slice value is no longer set.  This will lead to a crash if CSSBorderImageValue::cssText() is called because it assumes m_imageSlice is valid.

The simple fix may simply be to change CSSBorderImageValue::cssText() as follows:

    // Now the slices.
    if (m_imageSlice)
        text += m_imageSlice-&gt;cssText();

(I am not certain if the above fix is complete or if there are other side effects that may occur due to CSSBorderImageValue lacking an image slice.)

Crash log:

Thread 0 *CRASHED* ( EXC_BAD_ACCESS / KERN_PROTECTION_FAILURE @ 0x00000000 )

0x01350ab8	 [Google Chrome Framework	 - CSSBorderImageValue.cpp:50]	WebCore::CSSBorderImageValue::cssText
0x0139bb23	 [Google Chrome Framework	 - CSSProperty.cpp:32]	WebCore::CSSProperty::cssText
0x013745a7	 [Google Chrome Framework	 - CSSMutableStyleDeclaration.cpp:708]	WebCore::CSSMutableStyleDeclaration::cssText
0x0115459e	 [Google Chrome Framework	 - StyledElement.cpp:116]	WebCore::StyledElement::updateStyleAttribute
0x013e61b2	 [Google Chrome Framework	 - Element.h:480]	WebCore::SelectorChecker::checkOneSelector
0x013e5bf1	 [Google Chrome Framework	 - SelectorChecker.cpp:421]	WebCore::SelectorChecker::checkSelector
0x013cfc8f	 [Google Chrome Framework	 - CSSStyleSelector.cpp:1800]	WebCore::CSSStyleSelector::checkSelector
0x013b8bb3	 [Google Chrome Framework	 - CSSStyleSelector.cpp:606]	WebCore::CSSStyleSelector::matchRulesForList
0x013b88b4	 [Google Chrome Framework	 - CSSStyleSelector.cpp:536]	WebCore::CSSStyleSelector::matchRules
0x013b7199	 [Google Chrome Framework	 - CSSStyleSelector.cpp:1204]	WebCore::CSSStyleSelector::styleForElement
0x0111f3e5	 [Google Chrome Framework	 - Element.cpp:1055]	WebCore::Element::recalcStyle
0x0111f7f0	 [Google Chrome Framework	 - Element.cpp:1157]	WebCore::Element::recalcStyle
0x0111f7f0	 [Google Chrome Framework	 - Element.cpp:1157]	WebCore::Element::recalcStyle
0x0111f7f0	 [Google Chrome Framework	 - Element.cpp:1157]	WebCore::Element::recalcStyle
0x0111f7f0	 [Google Chrome Framework	 - Element.cpp:1157]	WebCore::Element::recalcStyle
0x0111f7f0	 [Google Chrome Framework	 - Element.cpp:1157]	WebCore::Element::recalcStyle
0x0111f7f0	 [Google Chrome Framework	 - Element.cpp:1157]	WebCore::Element::recalcStyle
0x0111f7f0	 [Google Chrome Framework	 - Element.cpp:1157]	WebCore::Element::recalcStyle
0x0111f7f0	 [Google Chrome Framework	 - Element.cpp:1157]	WebCore::Element::recalcStyle
0x0111f7f0	 [Google Chrome Framework	 - Element.cpp:1157]	WebCore::Element::recalcStyle
0x011052a9	 [Google Chrome Framework	 - Document.cpp:1568]	WebCore::Document::recalcStyle
0x01106038	 [Google Chrome Framework	 - Document.cpp:1625]	WebCore::Document::updateStyleIfNeeded
0x01106164	 [Google Chrome Framework	 - Document.cpp:1652]	WebCore::Document::updateLayout
0x01106257	 [Google Chrome Framework	 - Document.cpp:1688]	WebCore::Document::updateLayoutIgnorePendingStylesheets
0x0111c2bb	 [Google Chrome Framework	 - Element.cpp:347]	WebCore::Element::offsetHeight
0x0174056a	 [Google Chrome Framework	 - V8Element.cpp:93]	WebCore::ElementInternal::offsetHeightAttrGetter
0x00d1df3c	 [Google Chrome Framework	 - objects.cc:203]	v8::internal::Object::GetPropertyWithCallback
0x00d1dd38	 [Google Chrome Framework	 - objects.cc:583]	v8::internal::Object::GetProperty</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469089</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-09-17 12:47:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/10142425&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469090</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-09-17 12:49:00 -0700</bug_when>
    <thetext>Are there any live Web sites affected by this? That information greatly affects prioritization.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469098</commentid>
    <comment_count>3</comment_count>
    <who name="Dan Beam">dbeam</who>
    <bug_when>2011-09-17 14:00:11 -0700</bug_when>
    <thetext>Well, the New Tab Page in Chrome was affected - on every drag there was a crash because we&apos;re adding this style (http://goo.gl/jZpBZ).  It was also Chrome Canary&apos;s #1 crash the day it was introduced (crbug.com/96851#c1).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469104</commentid>
    <comment_count>4</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2011-09-17 14:53:07 -0700</bug_when>
    <thetext>Both the image source and image slice just need to be null checked.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469108</commentid>
    <comment_count>5</comment_count>
      <attachid>107777</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2011-09-17 15:51:57 -0700</bug_when>
    <thetext>Created attachment 107777
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469109</commentid>
    <comment_count>6</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2011-09-17 16:11:25 -0700</bug_when>
    <thetext>Fixed in r95386.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107777</attachid>
            <date>2011-09-17 15:51:57 -0700</date>
            <delta_ts>2011-09-17 15:54:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>3379</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk1Mzg1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDktMTcgIERhdmlkIEh5
YXR0ICA8aHlhdHRAYXBwbGUuY29tPgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02ODMwNworICAgICAgICAKKyAgICAgICAgQ3Jhc2ggaW4gYm9yZGVy
IGltYWdlIGNzc1RleHQuIE1ha2Ugc3VyZSB0byBudWxsIGNoZWNrIGFsbCB0aGUgY29tcG9uZW50
cywgc2luY2UgdGhleSdyZSBhbGwKKyAgICAgICAgb3B0aW9uYWwgbm93LgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGZhc3QvYm9yZGVycy9i
b3JkZXItaW1hZ2Utc2xpY2Utb21pc3Npb24uaHRtbAorCisgICAgICAgICogY3NzL0NTU0JvcmRl
ckltYWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQm9yZGVySW1hZ2VWYWx1ZTo6
Y3NzVGV4dCk6CisKIDIwMTEtMDktMTcgIEFhcm9uIEJvb2RtYW4gIDxhYUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV3b3JrIHNjcmlwdCBjb250ZXh0IGNyZWF0aW9uL3JlbGVhc2Ugbm90aWZp
Y2F0aW9ucwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU0JvcmRlckltYWdlVmFsdWUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NCb3JkZXJJbWFnZVZhbHVlLmNw
cAkocmV2aXNpb24gOTUyOTQpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQm9yZGVySW1hZ2VW
YWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDExICs0MywxNyBAQCBDU1NCb3JkZXJJbWFn
ZVZhbHVlOjp+Q1NTQm9yZGVySW1hZ2VWYWx1CiBTdHJpbmcgQ1NTQm9yZGVySW1hZ2VWYWx1ZTo6
Y3NzVGV4dCgpIGNvbnN0CiB7CiAgICAgLy8gSW1hZ2UgZmlyc3QuCi0gICAgU3RyaW5nIHRleHQo
bV9pbWFnZS0+Y3NzVGV4dCgpKTsKLSAgICB0ZXh0ICs9ICIgIjsKKyAgICBTdHJpbmcgdGV4dDsK
KyAgICAKKyAgICBpZiAobV9pbWFnZSkKKyAgICAgICAgdGV4dCArPSBtX2ltYWdlLT5jc3NUZXh0
KCk7CiAKICAgICAvLyBOb3cgdGhlIHNsaWNlcy4KLSAgICB0ZXh0ICs9IG1faW1hZ2VTbGljZS0+
Y3NzVGV4dCgpOworICAgIGlmIChtX2ltYWdlU2xpY2UpIHsKKyAgICAgICAgaWYgKCF0ZXh0Lmlz
RW1wdHkoKSkKKyAgICAgICAgICAgIHRleHQgKz0gIiAiOworICAgICAgICB0ZXh0ICs9IG1faW1h
Z2VTbGljZS0+Y3NzVGV4dCgpOworICAgIH0KIAogICAgIC8vIE5vdyB0aGUgYm9yZGVyIHdpZHRo
cy4KICAgICBpZiAobV9ib3JkZXJTbGljZSkgewpAQCAtNjIsNyArNjgsOCBAQCBTdHJpbmcgQ1NT
Qm9yZGVySW1hZ2VWYWx1ZTo6Y3NzVGV4dCgpIGNvCiAKICAgICBpZiAobV9yZXBlYXQpIHsKICAg
ICAgICAgLy8gTm93IHRoZSBrZXl3b3Jkcy4KLSAgICAgICAgdGV4dCArPSAiICI7CisgICAgICAg
IGlmICghdGV4dC5pc0VtcHR5KCkpCisgICAgICAgICAgICB0ZXh0ICs9ICIgIjsKICAgICAgICAg
dGV4dCArPSBtX3JlcGVhdC0+Y3NzVGV4dCgpOwogICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24g
OTUzODUpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxNCBAQAorMjAxMS0wOS0xNyAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CisKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4MzA3CisgICAg
ICAgIAorICAgICAgICBDcmFzaCBpbiBib3JkZXIgaW1hZ2UgY3NzVGV4dC4gTWFrZSBzdXJlIHRv
IG51bGwgY2hlY2sgYWxsIHRoZSBjb21wb25lbnRzLCBzaW5jZSB0aGV5J3JlIGFsbAorICAgICAg
ICBvcHRpb25hbCBub3cuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBmYXN0L2JvcmRlcnMvYm9yZGVyLWltYWdlLXNsaWNlLW9taXNzaW9uLmh0bWw6
IEFkZGVkLgorCiAyMDExLTA5LTE3ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5v
cmc+CiAKICAgICAgICAgW1F0XVtXSzJdIGZhc3QvZXZlbnRzL21lZGlhLWVsZW1lbnQtZm9jdXMt
dGFiLmh0bWwgZmFpbHMKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9ib3JkZXItaW1h
Z2Utc2xpY2Utb21pc3Npb24tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvYm9yZGVycy9ib3JkZXItaW1hZ2Utc2xpY2Utb21pc3Npb24tZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2JvcmRlci1pbWFnZS1zbGlj
ZS1vbWlzc2lvbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKK1RoaXMg
dGVzdCBwYXNzZXMgaWYgaXQgZG9lcyBub3QgY3Jhc2guCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2JvcmRlcnMvYm9yZGVyLWltYWdlLXNsaWNlLW9taXNzaW9uLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2JvcmRlci1pbWFnZS1zbGljZS1vbWlzc2lvbi5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2JvcmRlci1pbWFnZS1z
bGljZS1vbWlzc2lvbi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE3IEBACis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKQorCitmdW5jdGlvbiBydW5U
ZXN0KCkKK3sKKyAgIGRvY3VtZW50LmJvZHkuc3R5bGUuYm9yZGVySW1hZ2UgPSAnbm9uZScKKyAg
IGRvY3VtZW50LmJvZHkuc3R5bGUuY3NzVGV4dAorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eSBvbmxvYWQ9InJ1blRlc3QoKSI+CitUaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXMgbm90IGNy
YXNoLgorPC9ib2R5PgorCg==
</data>
<flag name="review"
          id="104554"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>