<?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>46427</bug_id>
          
          <creation_ts>2010-09-23 16:21:07 -0700</creation_ts>
          <short_desc>Crash below CGContextShowGlyphsWithAdvances due to invalid viewBox</short_desc>
          <delta_ts>2026-05-11 07:13: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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>CONFIGURATION CHANGED</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>
          
          <blocked>42959</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric</cc>
    
    <cc>inferno</cc>
    
    <cc>karlcow</cc>
    
    <cc>krit</cc>
    
    <cc>mitz</cc>
    
    <cc>pdr</cc>
    
    <cc>rniwa</cc>
    
    <cc>schenney</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>284069</commentid>
    <comment_count>0</comment_count>
      <attachid>68614</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-09-23 16:21:07 -0700</bug_when>
    <thetext>Created attachment 68614
serialized DOM

I&apos;ve seen a cross_fuzz crash happening in Safari 5.0.2 due to an invalid view box of root SVG element:

(gdb) p viewBox()
$51 = {
  m_location = {
    m_x = 0, 
    m_y = 0
  }, 
  m_size = {
    m_width = inf, 
    m_height = nan(0x400000)
  }
}

I couldn&apos;t find a way to reproduce it, since parsing of the viewBox attribute fails if there are infs or nans. I&apos;m attaching a serialization of what the DOM looks like at the moment of crash, but there probably needs to be some dynamic manipulation performed to create such a broken viewBox.

This might or might have not been fixed in ToT.

This is not really a security bug, but I&apos;m filing it as such because of fuzzer discussion. Also, even non-security crashes that happen in fuzzers complicate running them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284126</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-09-23 17:15:14 -0700</bug_when>
    <thetext>Actually, this seems fairly reproducible for me. Please tell me if there&apos;s any debug output I can add that would help - I don&apos;t know much about SVG.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284143</commentid>
    <comment_count>2</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-09-23 17:34:00 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Actually, this seems fairly reproducible for me. Please tell me if there&apos;s any debug output I can add that would help - I don&apos;t know much about SVG.

Can you set a breakpoint to see when the viewBox value changes to that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284200</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-09-23 20:38:20 -0700</bug_when>
    <thetext>As you are aware, it&apos;s all defined in macros, and viewBox isn&apos;t a plain variable. That said, if we can&apos;t get any SVG insight, I will of course have to resort to direct debugging techniques like this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284282</commentid>
    <comment_count>4</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-09-24 00:44:15 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; As you are aware, it&apos;s all defined in macros, and viewBox isn&apos;t a plain variable. That said, if we can&apos;t get any SVG insight, I will of course have to resort to direct debugging techniques like this one.

SVGFitToViewBox::parseMappedAttribute contains the viewBox parsing code.

It&apos;s invoked from SVGSVGElement::parseMappedAttribute.
The bug is probably in SVGFitToViewBox::parseViewBox.

Hope that helps?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284288</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-09-24 01:08:58 -0700</bug_when>
    <thetext>I don&apos;t see how parsing a viewBox string can produce inf or nan, which is why I&apos;ve been suspecting some kind of direct manipulation (or animation?).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284293</commentid>
    <comment_count>6</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-09-24 01:24:46 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; I don&apos;t see how parsing a viewBox string can produce inf or nan, which is why I&apos;ve been suspecting some kind of direct manipulation (or animation?).

Aha, I didn&apos;t know that any DOM manipulations are involved. (never heard of cross_fuzz).
Ok, let&apos;s see, SVGSVGElement.idl inherits from SVGFitToViewBox.idl, which exposes:
        readonly attribute SVGAnimatedRect                viewBox;

Internally we just store FloatRects to in the ANIMATED_PROPERTY macros.
Whenever you call mySVGSVGElement.viewBox, an internal JSSVGAnimatedRect wrapper object is created, which lets you access the &quot;baseVal&quot; which is of type JSSVGRect.

You can manipuate the x/y/width/height directly there. Snippet from JSSVGRect.cpp:
void setJSSVGRectX(ExecState* exec, JSObject* thisObject, JSValue value)
{
    JSSVGRect* castedThis = static_cast&lt;JSSVGRect*&gt;(thisObject);
    JSSVGPODTypeWrapper&lt;FloatRect&gt; * imp = static_cast&lt;JSSVGPODTypeWrapper&lt;FloatRect&gt; *&gt;(castedThis-&gt;impl());
    FloatRect podImp(*imp);
    podImp.setX(value.toFloat(exec));
    imp-&gt;commitChange(podImp, castedThis);
}

When calling mySVGSVGElement.viewBox.baseVal.x = 100; above code is executed, which modifes the x coordinate of the existing viewBox, and calls &quot;commitChange&quot; on the JSSVGPODTypeWrapper (which is used to expose POD types like FloatRect, FloatPoint, etc. to the corresponding SVG DOM types in the bindings).

JSSVGDynamicPODTypeWrapper contains:
    virtual void commitChange(PODType type, DOMObject* wrapper)
    {
        (m_creator.get()-&gt;*m_setter)(type);
        JSSVGContextCache::propagateSVGDOMChange(wrapper, m_creator-&gt;associatedAttributeName());
    }

The second call just notifies the SVGSVGElement using svgAttributeChanged(SVGNames::viewBoxAttr), that the viewBox has been changed from SVG DOM, it&apos;s irrelevant here.
The first call is more interessting.

It notifies the creator of the JSSVGRect, that it has been changed.
The creator here is the JSSVGAnimatedRect, where we called the baseVal function to get a SVGRect object:

JSValue jsSVGAnimatedRectBaseVal(ExecState* exec, JSValue slotBase, const Identifier&amp;)
{
    JSSVGAnimatedRect* castedThis = static_cast&lt;JSSVGAnimatedRect*&gt;(asObject(slotBase));
    UNUSED_PARAM(exec);
    SVGAnimatedRect* imp = static_cast&lt;SVGAnimatedRect*&gt;(castedThis-&gt;impl());
    JSValue result = toJS(exec, castedThis-&gt;globalObject(), JSSVGDynamicPODTypeWrapperCache&lt;FloatRect, SVGAnimatedRect&gt;::lookupOrCreateWrapper(imp, &amp;SVGAnimatedRect::baseVal, &amp;SVGAnimatedRect::setBaseVal).get(), JSSVGContextCache::svgContextForDOMObject(castedThis));;
    return result;
}

The commitChange(..) call from JSSVGRect, causes a call to SVGAnimatedRect::setBaseVal, replacing the current FloatRect with the new one. The setBaseVal call is hidden in the SVGAnimatedTemplate/SVGAnimatedProperty macro hackery, but in the end it&apos;s just that the existing viewBox FloatRect is replaced by the new one.

There&apos;s no check done at all wheter the viewBox is still correct.
So it&apos;s possible to set the viewBox to any arbitary value, no one is checking it.

Note this affects all properties like SVGRect/Number, etc.. very good catch!
I might need to think a bit more how to intercept this, to perform some sanity checks first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284400</commentid>
    <comment_count>7</comment_count>
      <attachid>68685</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-09-24 08:40:56 -0700</bug_when>
    <thetext>Created attachment 68685
test case (will crash)

&gt; You can manipuate the x/y/width/height directly there. Snippet from JSSVGRect.cpp:

Ah! What I tried before was creating an SVGRect and assigning it to s.viewBox.baseVal - which of course didn&apos;t work, since the attribute is readonly. With your explanation, I could make a reduced test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286450</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-28 12:33:49 -0700</bug_when>
    <thetext>Agreed this is not a security bug.  We could file a separate bug to track this with no mention of cross_fuzz if that&apos;s desired.

I&apos;m not sure I understand why CG is aborting here?  I caught this in the debugger, but I don&apos;t understand what part of the viewbox being invalid causes the crash?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286452</commentid>
    <comment_count>9</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-09-28 12:35:08 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Agreed this is not a security bug.  We could file a separate bug to track this with no mention of cross_fuzz if that&apos;s desired.
&gt; 
&gt; I&apos;m not sure I understand why CG is aborting here?  I caught this in the debugger, but I don&apos;t understand what part of the viewbox being invalid causes the crash?

Looks like the CGContext has a singular CTM because of the invalid viewbox.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286454</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-28 12:36:39 -0700</bug_when>
    <thetext>Only SVG has this problem, right?  Because HTML uses CGLayer to do all the transforms, if you ended up with a singular CTM the layer would simply not render, instead of CG crashing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286468</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-28 12:51:08 -0700</bug_when>
    <thetext>Assertion failed: ((min.y == p[0].y &amp;&amp; max.y == p[order].y) || (min.y == p[order].y &amp;&amp; max.y == p[0].y)), function crossing_count, file Paths/path-crossing.c, line 176.

Is the CG assert we&apos;re hitting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286471</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-28 12:52:04 -0700</bug_when>
    <thetext>In playing with the reduction, I&apos;m seeing this message too:

Tue Sep 28 12:49:38 eseidel.local DumpRenderTree[91952] &lt;Error&gt;: crossing_count: warning: assertion failed: 0 is not in the range (nan, nan) or (nan, nan); assuming the latter. Please report this bug.

From:
&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 1 1&quot;&gt;
&lt;g stroke=&quot;red&quot; stroke-width=&quot;4&quot;&gt;
  &lt;text x=&quot;50&quot; y=&quot;60&quot;&gt;Target&lt;/text&gt;
&lt;/g&gt;
&lt;script&gt;
document.documentElement.viewBox.baseVal.width = Infinity;
&lt;/script&gt;
&lt;/svg&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286473</commentid>
    <comment_count>13</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-28 12:52:39 -0700</bug_when>
    <thetext>In fact, the reduction in comment 12 causes DRT to just hang and keep spewing that message. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286474</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-28 12:54:05 -0700</bug_when>
    <thetext>To fully fix this, we should figure out what other browsers do with this value.  Should the SVG JS bindings be throwing an exception when trying to set this?  Ignoring the value?  Respecting it, but then the graphics layer should be ignoring it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286511</commentid>
    <comment_count>15</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-09-28 13:57:21 -0700</bug_when>
    <thetext>Firefox ignores, and logs an error to debug console.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286584</commentid>
    <comment_count>16</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-28 15:34:42 -0700</bug_when>
    <thetext>I wonder what FF does if you try and animate the viewBox to an illegal value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319807</commentid>
    <comment_count>17</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2010-12-09 17:13:58 -0800</bug_when>
    <thetext>&lt;rdar://problem/8752858&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610876</commentid>
    <comment_count>18</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-04-26 13:12:38 -0700</bug_when>
    <thetext>This security bug has been open since September 23rd, 2010 :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610886</commentid>
    <comment_count>19</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2012-04-26 13:20:42 -0700</bug_when>
    <thetext>We are not tracking this in chromium. i reverified on asan linux, drt, it does not crash. and not on chrome mac either. do we need to tweak the repro for chromium ? ccing our new SVG experts :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610889</commentid>
    <comment_count>20</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-04-26 13:21:37 -0700</bug_when>
    <thetext>It&apos;s not a security bug. :)  And cross_fuzz is now public:
http://lcamtuf.blogspot.com/2011/01/announcing-crossfuzz-potential-0-day-in.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610892</commentid>
    <comment_count>21</comment_count>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2012-04-26 13:25:24 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; We are not tracking this in chromium. i reverified on asan linux, drt, it does not crash. and not on chrome mac either. do we need to tweak the repro for chromium ? ccing our new SVG experts :)

Chromium has moved from CG to Skia so Chromium won&apos;t hit this.

Still, looks like a simple enough bug--let me take a look!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610911</commentid>
    <comment_count>22</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-04-26 13:35:35 -0700</bug_when>
    <thetext>Current stack trace:


#0	0x7fff814f70b6 in __kill
#1	0x7fff815979f6 in abort
#2	0x7fff815849bc in __assert_rtn
#3	0x7fff883718a5 in crossing_count
#4	0x7fff8837150b in path_evaluate_level
#5	0x7fff88371375 in path_get_expected_outside_orientation
#6	0x7fff88371329 in path_fix_orientation
#7	0x7fff88370daa in CGPathCreateByNormalizingGlyphPath
#8	0x7fff88370ba2 in CGFontCreateGlyphPath
#9	0x7fff838f7b17 in ripc_DrawGlyphs
#10	0x7fff8831b967 in draw_glyphs
#11	0x7fff8831b26e in CGContextShowGlyphsWithAdvances
#12	0x1029ef0cc in WebCore::showGlyphsWithAdvances at FontMac.mm:120
#13	0x1029efb2a in WebCore::Font::drawGlyphs at FontMac.mm:250
#14	0x1029eb326 in WebCore::Font::drawGlyphBuffer at FontFastPath.cpp:422
#15	0x1029eb426 in WebCore::Font::drawSimpleText at FontFastPath.cpp:366
#16	0x1029d94d5 in WebCore::Font::drawText at Font.cpp:152
#17	0x10212dd05 in WebCore::SVGInlineTextBox::paintTextWithShadows at SVGInlineTextBox.cpp:649
#18	0x102131d33 in WebCore::SVGInlineTextBox::paintText at SVGInlineTextBox.cpp:683
#19	0x102132536 in WebCore::SVGInlineTextBox::paint at SVGInlineTextBox.cpp:326
#20	0x10211b253 in WebCore::SVGRootInlineBox::paint at SVGRootInlineBox.cpp:66
#21	0x10331de9a in WebCore::RenderLineBoxList::paint at RenderLineBoxList.cpp:262
#22	0x10324b1a9 in WebCore::RenderBlock::paintContents at RenderBlock.cpp:2715
#23	0x103252125 in WebCore::RenderBlock::paintObject at RenderBlock.cpp:2825
#24	0x10324c084 in WebCore::RenderBlock::paint at RenderBlock.cpp:2571
#25	0x10211c971 in WebCore::RenderSVGText::paint at RenderSVGText.cpp:336
#26	0x10211d6a3 in WebCore::RenderSVGContainer::paint at RenderSVGContainer.cpp:128
#27	0x10328c92c in WebCore::RenderBox::paint at RenderBox.cpp:935
#28	0x10211e919 in WebCore::RenderSVGRoot::paintReplaced at RenderSVGRoot.cpp:302
#29	0x1020a98f8 in WebCore::RenderReplaced::paint at RenderReplaced.cpp:153
#30	0x103303993 in WebCore::RenderLayer::paintLayerContents at RenderLayer.cpp:3102
#31	0x10330406b in WebCore::RenderLayer::paintLayerContentsAndReflection at RenderLayer.cpp:2974
#32	0x10330455d in WebCore::RenderLayer::paintLayer at RenderLayer.cpp:2955
#33	0x103304ed1 in WebCore::RenderLayer::paintList at RenderLayer.cpp:3183
#34	0x103303c03 in WebCore::RenderLayer::paintLayerContents at RenderLayer.cpp:3125
#35	0x10330406b in WebCore::RenderLayer::paintLayerContentsAndReflection at RenderLayer.cpp:2974
#36	0x10330455d in WebCore::RenderLayer::paintLayer at RenderLayer.cpp:2955
#37	0x103305076 in WebCore::RenderLayer::paint at RenderLayer.cpp:2772
#38	0x102a35026 in WebCore::FrameView::paintContents at FrameView.cpp:3102
#39	0x100d1dd87 in -[WebFrame(WebInternal) _drawRect:contentsOnly:] at WebFrame.mm:571</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612677</commentid>
    <comment_count>23</comment_count>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2012-04-30 09:00:18 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #19)
&gt; &gt; We are not tracking this in chromium. i reverified on asan linux, drt, it does not crash. and not on chrome mac either. do we need to tweak the repro for chromium ? ccing our new SVG experts :)
&gt; 
&gt; Chromium has moved from CG to Skia so Chromium won&apos;t hit this.
&gt; 
&gt; Still, looks like a simple enough bug--let me take a look!

&quot;Simple enough&quot;, ha! nothing of the sort..

As Niko pointed out, some types (not just attributes) can be designated as read only where modification should throw a DOM modification exception.
http://www.w3.org/TR/SVG/types.html#InterfaceSVGRect
http://www.w3.org/TR/SVG/types.html#InterfaceSVGNumberList
http://www.w3.org/TR/SVG/types.html#InterfaceSVGLength
http://www.w3.org/TR/SVG/types.html#InterfaceSVGLengthList
http://www.w3.org/TR/SVG/types.html#InterfaceSVGAngle

We correctly handle some of these cases but not all.

I think we could add a readonly flag to one of the svg/properties, and throw an exception on modification, similar to SVGListProperty::canAlterList(). Another option would be to introduce SVGReadOnlyAnimatableRect and change the IDLs, but I&apos;m not a fan of that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612849</commentid>
    <comment_count>24</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-04-30 12:07:53 -0700</bug_when>
    <thetext>You&apos;re suggesting that these values are not &quot;readonly&quot; in the JavaScript sense, but rather dynamically readonly based on how it&apos;s being used by other IDLs?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612873</commentid>
    <comment_count>25</comment_count>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2012-04-30 12:32:32 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; You&apos;re suggesting that these values are not &quot;readonly&quot; in the JavaScript sense, but rather dynamically readonly based on how it&apos;s being used by other IDLs?

I think that&apos;s correct--let me explain further:
Consider the SVG spec snippet for SVGLengthList: &quot;An SVGLengthList object can be designated as read only, which means that attempts to modify the object will result in an exception being thrown&quot;. From my understanding of the IDL spec, calling SVGLengthList::clear() would be allowed on a readonly property, but not on a readonly property designated as readonly in the SVG spec.

Does that clarify things?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613416</commentid>
    <comment_count>26</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-01 08:26:53 -0700</bug_when>
    <thetext>It sounds like these various tear-off objects (at least their wrappers) need some sort of readonly method.  Ideally one which is shared between these tearoffs.  Should be easy enough to implement, and hopefully not too expensive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2209706</commentid>
    <comment_count>27</comment_count>
    <who name="Karl Dubost">karlcow</who>
    <bug_when>2026-05-11 07:13:13 -0700</bug_when>
    <thetext>Chrome:

attachment.cgi?id=68685:13 Uncaught TypeError: Failed to set the &apos;width&apos; property on &apos;SVGRect&apos;: The provided float value is non-finite.
    at attachment.cgi?id=68685:13:25

Firefox

Navigated to https://bug-46427-attachments.webkit.org/attachment.cgi?id=68685
Uncaught TypeError: can&apos;t access property &quot;x&quot;, s.viewBox.baseVal is null
    &lt;anonymous&gt; https://bug-46427-attachments.webkit.org/attachment.cgi?id=68685:11
attachment.cgi:11:1
    &lt;anonymous&gt; https://bug-46427-attachments.webkit.org/attachment.cgi?id=68685:11
GET
https://bug-46427-attachments.webkit.org/favicon.ico
[HTTP/2 404  0ms]

​
Safari 
[Error] TypeError: The provided value is non-finite
	Global Code (attachment.cgi:13)


It doesn&apos;t crash.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>68614</attachid>
            <date>2010-09-23 16:21:07 -0700</date>
            <delta_ts>2010-09-24 08:40:56 -0700</delta_ts>
            <desc>serialized DOM</desc>
            <filename>sanitized.svg</filename>
            <type>text/plain</type>
            <size>1596</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">//48ACEARABPAEMAVABZAFAARQAgAHMAdgBnACAAUABVAEIATABJAEMAIAAiAC0ALwAvAFcAMwBD
AC8ALwBEAFQARAAgAFMAVgBHACAAMQAuADEALwAvAEUATgAiACAAIgBoAHQAdABwADoALwAvAHcA
dwB3AC4AdwAzAC4AbwByAGcALwBHAHIAYQBwAGgAaQBjAHMALwBTAFYARwAvADEALgAxAC8ARABU
AEQALwBzAHYAZwAxADEALgBkAHQAZAAiAD4ACgA8AHMAdgBnACAAeABtAGwAbgBzAD0AIgBoAHQA
dABwADoALwAvAHcAdwB3AC4AdwAzAC4AbwByAGcALwAyADAAMAAwAC8AcwB2AGcAIgAgAHcAaQBk
AHQAaAA9ACIAbgBhAG4AJQAiACAAaABlAGkAZwBoAHQAPQAiADEAMAAwACUAIgAgAHYAZQByAHMA
aQBvAG4APQAiADEALgAxACIAIAB5AD0AIgBuAGEAbgAiACAAdgBpAGUAdwBCAG8AeAA9ACIAMAAu
ADAAMAAwADAAMAAwACAAMAAuADAAMAAwADAAMAAwACAAaQBuAGYAIABuAGEAbgAiACAAcAByAGUA
cwBlAHIAdgBlAEEAcwBwAGUAYwB0AFIAYQB0AGkAbwA9ACIAeABNAGkAZABZAE0AaQBkACAAbQBl
AGUAdAAiACAAYwBvAG4AdABlAG4AdABTAGMAcgBpAHAAdABUAHkAcABlAD0AIgBwAGkAbgBrACIA
IAB4AD0AIgAwACIAPgAKADwAZABlAGYAcwA+AAoAPABmAGkAbAB0AGUAcgAgAGkAZAA9ACIARQBy
AG8AZABlACIAIABzAHQAeQBsAGUAPQAiACIAPgBJAG4AZgBpAG4AaQB0AHkAPABmAGUATQBvAHIA
cABoAG8AbABvAGcAeQAgAG8AcABlAHIAYQB0AG8AcgA9ACIAZQByAG8AZABlACIAIABpAG4APQAi
AFMAbwB1AHIAYwBlAEcAcgBhAHAAaABpAGMAIgAgAHIAYQBkAGkAdQBzAD0AIgAxACIALwA+AAoA
PAAvAGYAaQBsAHQAZQByAD4ACgA8AGYAaQBsAHQAZQByACAAaQBkAD0AIgBEAGkAbABhAHQAZQAi
ACAAYgBhAHMAZQA9ACIASQBuAGYAaQBuAGkAdAB5ACIAIAA+AAoACQA8AGYAZQBNAG8AcgBwAGgA
bwBsAG8AZwB5ACAAbwBwAGUAcgBhAHQAbwByAD0AIgBkAGkAbABhAHQAZQAiACAAaQBuAD0AIgBT
AG8AdQByAGMAZQBHAHIAYQBwAGgAaQBjACIAIAByAGEAZABpAHUAcwA9ACIAMwAiAC8APgAKADwA
LwBmAGkAbAB0AGUAcgA+AAoAPAAvAGQAZQBmAHMAPgAKAAoAPABnACAAZQBuAGEAYgBsAGUALQBi
AGEAYwBrAGcAcgBvAHUAbgBkAD0AIgBuAGUAdwAiAD4ACgA8AGcAIABmAG8AbgB0AC0AZgBhAG0A
aQBsAHkAPQAiAFYAZQByAGQAYQBuAGEAIgAgAGYAbwBuAHQALQBzAGkAegBlAD0AIgA1ADAAIgAg
AHMAdAByAG8AawBlAD0AIgByAGUAZAAiACAAcwB0AHIAbwBrAGUALQB3AGkAZAB0AGgAPQAiADQA
IgA+AAoACQA8AHQAZQB4AHQAIAB4AD0AIgA1ADAAIgAgAHkAPQAiADYAMAAiAD4AVABhAHIAZwBl
AHQAPAAvAHQAZQB4AHQAPgAKAAkAPAB0AGUAeAB0ACAAeAA9ACIANQAwACIAIAB5AD0AIgAxADIA
MAAiACAAZgBpAGwAdABlAHIAPQAiAHUAcgBsACgAIwBFAHIAbwBkAGUAKQAiAD4AVABhAHIAZwBl
AHQAPAAvAHQAZQB4AHQAPgAKAAkAPAB0AGUAeAB0ACAAeAA9ACIANQAwACIAIAB5AD0AIgAxADgA
MAAiACAAZgBpAGwAdABlAHIAPQAiAHUAcgBsACgAIwBEAGkAbABhAHQAZQApACIAPgBUAGEAcgBn
AGUAdAA8AC8AdABlAHgAdAA+AAoAPAAvAGcAPgAKADwALwBnAD4ACgAKAAoAPAAvAHMAdgBnAD4A
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>68685</attachid>
            <date>2010-09-24 08:40:56 -0700</date>
            <delta_ts>2010-09-24 08:40:56 -0700</delta_ts>
            <desc>test case (will crash)</desc>
            <filename>viewbox-crash.svg</filename>
            <type>image/svg+xml</type>
            <size>504</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3
dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB4bWxucz0iaHR0
cDovL3d3dy53My5vcmcvMjAwMC9zdmciID4KCjxnIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250
LXNpemU9IjUwIiBzdHJva2U9InJlZCIgc3Ryb2tlLXdpZHRoPSI0Ij4KCTx0ZXh0IHg9IjUwIiB5
PSI2MCI+VGFyZ2V0PC90ZXh0PgoJPHRleHQgeD0iNTAiIHk9IjEyMCI+VGFyZ2V0PC90ZXh0PgoJ
PHRleHQgeD0iNTAiIHk9IjE4MCI+VGFyZ2V0PC90ZXh0Pgo8L2c+CjxzY3JpcHQ+CnZhciBzID0g
ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OwpzLnZpZXdCb3guYmFzZVZhbC54ID0gMDsKcy52aWV3
Qm94LmJhc2VWYWwueSA9IDA7CnMudmlld0JveC5iYXNlVmFsLndpZHRoID0gSW5maW5pdHk7CnMu
dmlld0JveC5iYXNlVmFsLmhlaWdodCA9IE5hTjsKPC9zY3JpcHQ+Cgo8L3N2Zz4K
</data>

          </attachment>
      

    </bug>

</bugzilla>