<?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>53316</bug_id>
          
          <creation_ts>2011-01-28 11:44:33 -0800</creation_ts>
          <short_desc>NULL pointer crash when using :empty and :first-line pseudoclass selectors together</short_desc>
          <delta_ts>2011-03-10 18:17:26 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction</keywords>
          <priority>P2</priority>
          <bug_severity>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Thomas Sepez">tsepez</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>hyatt</cc>
    
    <cc>jamesr</cc>
    
    <cc>koivisto</cc>
    
    <cc>mitz</cc>
    
    <cc>ojan</cc>
    
    <cc>paroga</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>341579</commentid>
    <comment_count>0</comment_count>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-01-28 11:44:33 -0800</bug_when>
    <thetext>The following example reproduces the crash:
&lt;style&gt; *:empty:first-line { background: red; } &lt;/style&gt;
&lt;button autofocus&gt;&lt;/button&gt;

Crash is at:

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x00000024
[Switching to process 7834]
0x025ccff5 in WTF::RefPtr&lt;WebCore::StyleInheritedData&gt;::get (this=0x24) at RefPtr.h:60
60	        T* get() const { return m_ptr; }
(gdb) where
#0  0x025ccff5 in WTF::RefPtr&lt;WebCore::StyleInheritedData&gt;::get (this=0x24) at RefPtr.h:60
#1  0x025f9155 in WebCore::DataRef&lt;WebCore::StyleInheritedData&gt;::get (this=0x24) at DataRef.h:33
#2  0x025f9169 in WebCore::DataRef&lt;WebCore::StyleInheritedData&gt;::operator-&gt; (this=0x24) at DataRef.h:36
#3  0x025334a8 in WebCore::RenderStyle::lineHeight (this=0x0) at RenderStyle.h:484
#4  0x0295bea9 in WebCore::RenderStyle::computedLineHeight (this=0x0) at RenderStyle.h:487
#5  0x0293f1fc in WebCore::RenderBlock::lineHeight (this=0x9ef7e6c, firstLine=true, direction=WebCore::HorizontalLine, linePositionMode=WebCore::PositionOfInteriorLineBoxes) at /Volumes/MacintoshHD2/c1/src/third_party/WebKit/Source/WebCore/WebCore.gyp/../rendering/RenderBlock.cpp:5028
#6  0x02a52eea in WebCore::RootInlineBox::lineHeight (this=0x9ee7f4c) at RootInlineBox.h:92
#7  0x029272d9 in WebCore::InlineFlowBox::computeLogicalBoxHeights (this=0x9ee7f4c, maxPositionTop=@0xb49b6264, maxPositionBottom=@0xb49b6260, maxAscent=@0xb49b625c, maxDescent=@0xb49b6258, setMaxAscent=@0xb49b626f, setMaxDescent=@0xb49b626e, strictMode=false, textBoxDataMap=@0xb49b66e8, baselineType=WebCore::AlphabeticBaseline, verticalPositionCache=@0xb49b6660) at /Volumes/MacintoshHD2/c1/src/third_party/WebKit/Source/WebCore/WebCore.gyp/../rendering/InlineFlowBox.cpp:460
#8  0x02a52018 in WebCore::RootInlineBox::alignBoxesInBlockDirection (this=0x9ee7f4c, heightOfBlock=0, textBoxDataMap=@0xb49b66e8, verticalPositionCache=@0xb49b6660) at /Volumes/MacintoshHD2/c1/src/third_party/WebKit/Source/WebCore/WebCore.gyp/../rendering/RootInlineBox.cpp:242
#9  0x0296b30e in WebCore::RenderBlock::computeBlockDirectionPositionsForLine (this=0x9ef7e6c, lineBox=0x9ee7f4c, firstRun=0x9ef24bc, textBoxDataMap=@0xb49b66e8, verticalPositionCache=@0xb49b6660) at /Volumes/MacintoshHD2/c1/src/third_party/WebKit/Source/WebCore/WebCore.gyp/../rendering/RenderBlockLineLayout.cpp:480
#10 0x0296dfe1 in WebCore::RenderBlock::layoutInlineChildren (this=0x9ef7e6c, relayoutChildren=true, repaintLogicalTop=@0xb49b6878, repaintLogicalBottom=@0xb49b6874) at /Volumes/MacintoshHD2/c1/src/third_party/WebKit/Source/WebCore/WebCore.gyp/../rendering/RenderBlockLineLayout.cpp:756
#11 0x0294e164 in WebCore::RenderBlock::layoutBlock (this=0x9ef7e6c, relayoutChildren=true, pageLogicalHeight=0) at /Volumes/MacintoshHD2/c1/src/third_party/WebKit/Source/WebCore/WebCore.gyp/../rendering/RenderBlock.cpp:1221
#12 0x0294ce18 in WebCore::RenderBlock::layout (this=0x9ef7e6c) at /Volumes/MacintoshHD2/c1/src/third_party/WebKit/Source/WebCore/WebCore.gyp/../rendering/RenderBlock.cpp:1119
#13 0x0294bf03 in WebCore::RenderBlock::layoutBlockChild (this=0x9eec33c, child=0x9ef7e6c, marginInfo=@0xb49b6a2c, previousFloatLogicalBottom=@0xb49b6a54, maxFloatLogicalBottom=@0xb49b6ba0) at /Volumes/MacintoshHD2/c1/src/third_party/WebKit/Source/WebCore/WebCore.gyp/../rendering/RenderBlock.cpp:1958
#14 0x0294db28 in WebCore::RenderBlock::layoutBlockChildren (this=0x9eec33c, relayoutChildren=true, maxFloatLogicalBottom=@0xb49b6ba0) at /Volumes/MacintoshHD2/c1/src/third_party/WebKit/Source/WebCore/WebCore.gyp/../rendering/RenderBlock.cpp:1896

...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341653</commentid>
    <comment_count>1</comment_count>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-01-28 12:41:00 -0800</bug_when>
    <thetext>In RenderBlock::lineHeight():

   if (firstLine &amp;&amp; document()-&gt;usesFirstLineRules()) {
        RenderStyle* s = style(firstLine);
        if (s != style())
            return s-&gt;computedLineHeight();

we&apos;re getting a NULL back from style(firstLine).

This is called once successfully, but the second call returns 0, because eventually RenderObject::getUncachedPseudoStyle() is taking a &quot;return 0&quot; path.   While this code should protect itself against this case via something like 

           if (s &amp;&amp; s != style())

it&apos;s not clear that this is sufficient; would like to know why it&apos;s not finding any style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341725</commentid>
    <comment_count>2</comment_count>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-01-28 14:10:12 -0800</bug_when>
    <thetext>adding the check :
  
    if (s &amp;&amp; s != style())

merely moves the segv to RenderBlock::baselinePosition() where another deref occurs:

   const FontMetrics&amp; fontMetrics = style(firstLine)-&gt;fontMetrics();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342106</commentid>
    <comment_count>3</comment_count>
      <attachid>80565</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-01-29 10:18:21 -0800</bug_when>
    <thetext>Created attachment 80565
LayoutTest</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342110</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-01-29 10:33:52 -0800</bug_when>
    <thetext>Crashes Safari 5.0.3 as well as nightlies in RenderBlock::findNextLineBreak().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362253</commentid>
    <comment_count>5</comment_count>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-03-03 21:24:09 -0800</bug_when>
    <thetext>I&apos;ve been looking into this with Ojan.

From what we can gather, when the body element gets attached, the :empty:first-line selector matches it (since nothing has been attached to it yet).

Then, when the button focus happens, the styles are not recalculated, so the hasPseudoStyle(FIRST_LINE) method returns true, but no style is matched, so a null pointer is returned to the findNextLineBreak (http://trac.webkit.org/browser/trunk/Source/WebCore/rendering/RenderBlockLineLayout.cpp?rev=80288#L1655) method.

(The original stack trace breaks in a different point, but I think it&apos;s likely to be the same cause.)

The new stack, from attach():

#0	0x10173ec94 in WTF::RefPtr&lt;WebCore::StyleRareNonInheritedData&gt;::get at RefPtr.h:60
#1	0x10169627d in WebCore::DataRef&lt;WebCore::StyleRareNonInheritedData&gt;::get at DataRef.h:33
#2	0x101696295 in WebCore::DataRef&lt;WebCore::StyleRareNonInheritedData&gt;::operator-&gt; at DataRef.h:36
#3	0x10173ed95 in WebCore::RenderStyle::textCombine at RenderStyle.h:735
#4	0x101f8b071 in WebCore::RenderStyle::hasTextCombine at RenderStyle.h:736
#5	0x101f8309c in WebCore::RenderBlock::findNextLineBreak at RenderBlockLineLayout.cpp:1672
#6	0x101f882bd in WebCore::RenderBlock::layoutInlineChildren at RenderBlockLineLayout.cpp:692
#7	0x101f69527 in WebCore::RenderBlock::layoutBlock at RenderBlock.cpp:1224
#8	0x101f63ad8 in WebCore::RenderBlock::layout at RenderBlock.cpp:1122
#9	0x101f62bfc in WebCore::RenderBlock::layoutBlockChild at RenderBlock.cpp:1961
#10	0x101f68ecb in WebCore::RenderBlock::layoutBlockChildren at RenderBlock.cpp:1899
#11	0x101f69540 in WebCore::RenderBlock::layoutBlock at RenderBlock.cpp:1226
#12	0x101f63ad8 in WebCore::RenderBlock::layout at RenderBlock.cpp:1122
#13	0x101f62bfc in WebCore::RenderBlock::layoutBlockChild at RenderBlock.cpp:1961
#14	0x101f68ecb in WebCore::RenderBlock::layoutBlockChildren at RenderBlock.cpp:1899
#15	0x101f69540 in WebCore::RenderBlock::layoutBlock at RenderBlock.cpp:1226
#16	0x101f63ad8 in WebCore::RenderBlock::layout at RenderBlock.cpp:1122
#17	0x1020bd3a5 in WebCore::RenderView::layout at RenderView.cpp:130
#18	0x10196a1c6 in WebCore::FrameView::layout at FrameView.cpp:906
#19	0x1017a9a15 in WebCore::Document::updateLayout at Document.cpp:1588
#20	0x1018d0d1a in WebCore::Element::focus at Element.cpp:1498
#21	0x101a3ca93 in WebCore::HTMLFormControlElement::attach at HTMLFormControlElement.cpp:144</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364298</commentid>
    <comment_count>6</comment_count>
      <attachid>85128</attachid>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-03-08 20:37:00 -0800</bug_when>
    <thetext>Created attachment 85128
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364301</commentid>
    <comment_count>7</comment_count>
      <attachid>85128</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-03-08 20:58:08 -0800</bug_when>
    <thetext>Comment on attachment 85128
Patch

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

release the attack drones!

&gt; Source/WebCore/ChangeLog:17
&gt; +        (WebCore::checkForEmptyStyleChange): Pull out empty style checking
&gt; +                                             logic from checkForSiblingStyleChanges().

darin yelled at me when I did funky alignments like that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364302</commentid>
    <comment_count>8</comment_count>
      <attachid>85128</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-03-08 21:03:30 -0800</bug_when>
    <thetext>Comment on attachment 85128
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:17
&gt;&gt; +                                             logic from checkForSiblingStyleChanges().
&gt; 
&gt; darin yelled at me when I did funky alignments like that.

What did he say to do instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364305</commentid>
    <comment_count>9</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-03-08 21:10:09 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 85128 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=85128&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/ChangeLog:17
&gt; &gt;&gt; +                                             logic from checkForSiblingStyleChanges().
&gt; &gt; 
&gt; &gt; darin yelled at me when I did funky alignments like that.
&gt; 
&gt; What did he say to do instead?

like this: http://trac.webkit.org/changeset/80604/trunk/Source/WebCore/ChangeLog
or also: http://trac.webkit.org/changeset/79607</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364777</commentid>
    <comment_count>10</comment_count>
      <attachid>85235</attachid>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-03-09 14:21:37 -0800</bug_when>
    <thetext>Created attachment 85235
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364798</commentid>
    <comment_count>11</comment_count>
      <attachid>85235</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-03-09 14:49:01 -0800</bug_when>
    <thetext>Comment on attachment 85235
Patch

Make it so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365724</commentid>
    <comment_count>12</comment_count>
      <attachid>85235</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-10 18:17:21 -0800</bug_when>
    <thetext>Comment on attachment 85235
Patch

Clearing flags on attachment: 85235

Committed r80803: &lt;http://trac.webkit.org/changeset/80803&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365725</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-10 18:17:26 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>80565</attachid>
            <date>2011-01-29 10:18:21 -0800</date>
            <delta_ts>2011-01-29 10:18:21 -0800</delta_ts>
            <desc>LayoutTest</desc>
            <filename>bug-53316.html</filename>
            <type>text/html</type>
            <size>292</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">PGh0bWw+IAo8aGVhZD4KPHNjcmlwdD4KICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCiAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwo8L3NjcmlwdD4K
PHN0eWxlIHR5cGU9InRleHQvY3NzIj4gCiAqOmVtcHR5OmZpcnN0LWxpbmUgeyBiYWNrZ3JvdW5k
OiByZWQ7IH0gCjwvc3R5bGU+CjwvaGVhZD4gCjxib2R5PiAKIFRoaXMgdGVzdCBwYXNzZXMgaWYg
aXQgZG9lcyBub3QgY3Jhc2guCiA8YnV0dG9uIGF1dG9mb2N1cz48L2J1dHRvbj4KPC9ib2R5Pgo8
L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85128</attachid>
            <date>2011-03-08 20:37:00 -0800</date>
            <delta_ts>2011-03-09 14:21:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53316-20110309153657.patch</filename>
            <type>text/plain</type>
            <size>4825</size>
            <attacher name="Alice Boxhall">aboxhall</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODA1MDcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhOWYwYzAzYWFlZWRkNTA5OTQ0ZjYw
YjI2MmVjOWNmZmJmZTViNmM3Li5iZmVkNDA0ODA0ZGM0MjI2NjI1NDU1ZDU5Njc2YmI5OWU5NDBk
MGJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDMtMDggIEFsaWNlIEJveGhhbGwgIDxh
Ym94aGFsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTlVMTCBwb2ludGVyIGNyYXNoIHdoZW4gdXNpbmcgOmVtcHR5IGFuZCA6
Zmlyc3QtbGluZSBwc2V1ZG9jbGFzcyBzZWxlY3RvcnMgdG9nZXRoZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMzE2CisKKyAgICAgICAgKiBmYXN0
L2Nzcy9lbXB0eS1maXJzdC1saW5lLWNyYXNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9jc3MvZW1wdHktZmlyc3QtbGluZS1jcmFzaC5odG1sOiBBZGRlZC4KKwogMjAxMS0w
My0wNyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Vt
cHR5LWZpcnN0LWxpbmUtY3Jhc2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
ZW1wdHktZmlyc3QtbGluZS1jcmFzaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDU5ZTEyYzQ5
NGU2MDdkNTU0NDZmZjZjMDMyMmMyMzJjNWUxNzA0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzL2VtcHR5LWZpcnN0LWxpbmUtY3Jhc2gtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEgQEAKK1Rlc3RzIHRoYXQgdGhlIDplbXB0eSBwc2V1ZG8tY2xhc3MgZG9lc24ndCBjYXVz
ZSBhIGNyYXNoIHdoZW4gdGhlIGVtcHR5IHN0YXR1cyBjaGFuZ2VzIGR1cmluZyBwYXJzaW5nLiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2VtcHR5LWZpcnN0LWxpbmUtY3Jhc2gu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2VtcHR5LWZpcnN0LWxpbmUtY3Jhc2guaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lNGI3YTA0NzZmMzkyNjZiODFlNWE4YjBiZmYyZmQzMjNhOGNiZGNiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZW1wdHktZmlyc3QtbGluZS1jcmFz
aC5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdD4KK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworPC9zY3JpcHQ+Cis8c3R5bGU+CisqOmVtcHR5OmZpcnN0LWxpbmUgeyBiYWNr
Z3JvdW5kOiByZWQ7IH0KKzwvc3R5bGU+Cis8ZGl2PgorVGVzdHMgdGhhdCB0aGUgOmVtcHR5IHBz
ZXVkby1jbGFzcyBkb2Vzbid0IGNhdXNlIGEgY3Jhc2ggd2hlbiB0aGUgZW1wdHkgc3RhdHVzIGNo
YW5nZXMgZHVyaW5nIHBhcnNpbmcuCis8YnV0dG9uIGF1dG9mb2N1cz48L2J1dHRvbj4KKzwvZGl2
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDJiYzg2NzRiYmFmMmMyMzUyMjk2Y2U0MmUxNmVkNGNlOGE3ZmUzMmEu
LjIwMTRiNDgwZWMyMjA4NmRlZjJmYzE1Y2NlZGI0NTE4YTNmYTJjZGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNSBAQAorMjAxMS0wMy0wOCAgQWxpY2UgQm94aGFsbCAgPGFib3hoYWxsQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBOVUxMIHBvaW50ZXIgY3Jhc2ggd2hlbiB1c2luZyA6ZW1wdHkgYW5kIDpmaXJzdC1saW5lIHBz
ZXVkb2NsYXNzIHNlbGVjdG9ycyB0b2dldGhlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTMzMTYKKworICAgICAgICA6ZW1wdHkgaXMgY2FsY3VsYXRl
ZCBmb3IgZWFjaCBlbGVtZW50IGR1cmluZyBwYXJzaW5nLCBidXQgdGhlbiBub3QgCisgICAgICAg
IHJlY2FsY3VsYXRlZCBhZnRlciBhbnkgY2hpbGQgZWxlbWVudHMgYXJlIGF0dGFjaGVkLiBGb3Jj
ZSBzdHlsZSAKKyAgICAgICAgcmUtY2FsY3VsYXRpb24gb24gZWxlbWVudHMgd2hpY2ggaGF2ZSA6
ZW1wdHkgaW4gdGhlaXIgc3R5bGUgd2hlbgorICAgICAgICB0aGVpciBjaGlsZHJlbiBhcmUgY2hh
bmdlZC4KKworICAgICAgICBUZXN0OiBmYXN0L2Nzcy9lbXB0eS1maXJzdC1saW5lLWNyYXNoLmh0
bWwKKworICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNoZWNr
Rm9yRW1wdHlTdHlsZUNoYW5nZSk6IFB1bGwgb3V0IGVtcHR5IHN0eWxlIGNoZWNraW5nCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dpYyBmcm9tIGNoZWNr
Rm9yU2libGluZ1N0eWxlQ2hhbmdlcygpLgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tGb3JTaWJs
aW5nU3R5bGVDaGFuZ2VzKTogVXNlIG5ldyBjaGVja0ZvckVtcHR5U3R5bGVDaGFuZ2VzKCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZCk6ICBDYWxsIGNoZWNrRm9y
RW1wdHlTdHlsZUNoYW5nZXMoKSB3aGVuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2FsbGVkIHdpdGggY2hhbmdlZEJ5UGFyc2VyID0gdHJ1ZS4KKwogMjAx
MS0wMy0wNyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBiOWNiM2Fk
ZGQ2NmMxNWUxM2JkNDgyOTIxMWVmZmU2NjNmMmRmODgwLi5iZGY1MTY0NzQ1NjgzNWRhOTQ3Njk0
ZmNmNDY0ODExMTUxOWM0YWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xMTgzLDYgKzEx
ODMsMTUgQEAgYm9vbCBFbGVtZW50OjpjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlIHR5cGUpCiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCitzdGF0aWMgdm9pZCBjaGVja0ZvckVtcHR5U3R5bGVDaGFu
Z2UoRWxlbWVudCogZWxlbWVudCwgUmVuZGVyU3R5bGUqIHN0eWxlKQoreworICAgIGlmICghc3R5
bGUpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChzdHlsZS0+YWZmZWN0ZWRCeUVtcHR5KCkg
JiYgKCFzdHlsZS0+ZW1wdHlTdGF0ZSgpIHx8IGVsZW1lbnQtPmhhc0NoaWxkTm9kZXMoKSkpCisg
ICAgICAgIGVsZW1lbnQtPnNldE5lZWRzU3R5bGVSZWNhbGMoKTsKK30KKwogc3RhdGljIHZvaWQg
Y2hlY2tGb3JTaWJsaW5nU3R5bGVDaGFuZ2VzKEVsZW1lbnQqIGUsIFJlbmRlclN0eWxlKiBzdHls
ZSwgYm9vbCBmaW5pc2hlZFBhcnNpbmdDYWxsYmFjaywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBOb2RlKiBiZWZvcmVDaGFuZ2UsIE5vZGUqIGFmdGVyQ2hhbmdlLCBp
bnQgY2hpbGRDb3VudERlbHRhKQogewpAQCAtMTI1OSwxNyArMTI2OCwxOCBAQCBzdGF0aWMgdm9p
ZCBjaGVja0ZvclNpYmxpbmdTdHlsZUNoYW5nZXMoRWxlbWVudCogZSwgUmVuZGVyU3R5bGUqIHN0
eWxlLCBib29sIGZpbgogICAgICAgICBlLT5zZXROZWVkc1N0eWxlUmVjYWxjKCk7CiAgICAgCiAg
ICAgLy8gOmVtcHR5IHNlbGVjdG9yLgotICAgIGlmIChzdHlsZS0+YWZmZWN0ZWRCeUVtcHR5KCkg
JiYgKCFzdHlsZS0+ZW1wdHlTdGF0ZSgpIHx8IGUtPmhhc0NoaWxkTm9kZXMoKSkpCi0gICAgICAg
IGUtPnNldE5lZWRzU3R5bGVSZWNhbGMoKTsKKyAgICBjaGVja0ZvckVtcHR5U3R5bGVDaGFuZ2Uo
ZSwgc3R5bGUpOwogfQogCiB2b2lkIEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChib29sIGNoYW5n
ZWRCeVBhcnNlciwgTm9kZSogYmVmb3JlQ2hhbmdlLCBOb2RlKiBhZnRlckNoYW5nZSwgaW50IGNo
aWxkQ291bnREZWx0YSkKIHsKICAgICBDb250YWluZXJOb2RlOjpjaGlsZHJlbkNoYW5nZWQoY2hh
bmdlZEJ5UGFyc2VyLCBiZWZvcmVDaGFuZ2UsIGFmdGVyQ2hhbmdlLCBjaGlsZENvdW50RGVsdGEp
OwotICAgIGlmICghY2hhbmdlZEJ5UGFyc2VyKQorICAgIGlmIChjaGFuZ2VkQnlQYXJzZXIpCisg
ICAgICAgIGNoZWNrRm9yRW1wdHlTdHlsZUNoYW5nZSh0aGlzLCByZW5kZXJTdHlsZSgpKTsKKyAg
ICBlbHNlCiAgICAgICAgIGNoZWNrRm9yU2libGluZ1N0eWxlQ2hhbmdlcyh0aGlzLCByZW5kZXJT
dHlsZSgpLCBmYWxzZSwgYmVmb3JlQ2hhbmdlLCBhZnRlckNoYW5nZSwgY2hpbGRDb3VudERlbHRh
KTsKIH0KLSAgICAKKwogdm9pZCBFbGVtZW50OjpiZWdpblBhcnNpbmdDaGlsZHJlbigpCiB7CiAg
ICAgY2xlYXJJc1BhcnNpbmdDaGlsZHJlbkZpbmlzaGVkKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85235</attachid>
            <date>2011-03-09 14:21:37 -0800</date>
            <delta_ts>2011-03-10 18:17:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53316-20110310092134.patch</filename>
            <type>text/plain</type>
            <size>4710</size>
            <attacher name="Alice Boxhall">aboxhall</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODA1MDcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhOWYwYzAzYWFlZWRkNTA5OTQ0ZjYw
YjI2MmVjOWNmZmJmZTViNmM3Li5iZmVkNDA0ODA0ZGM0MjI2NjI1NDU1ZDU5Njc2YmI5OWU5NDBk
MGJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDMtMDggIEFsaWNlIEJveGhhbGwgIDxh
Ym94aGFsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTlVMTCBwb2ludGVyIGNyYXNoIHdoZW4gdXNpbmcgOmVtcHR5IGFuZCA6
Zmlyc3QtbGluZSBwc2V1ZG9jbGFzcyBzZWxlY3RvcnMgdG9nZXRoZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMzE2CisKKyAgICAgICAgKiBmYXN0
L2Nzcy9lbXB0eS1maXJzdC1saW5lLWNyYXNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9jc3MvZW1wdHktZmlyc3QtbGluZS1jcmFzaC5odG1sOiBBZGRlZC4KKwogMjAxMS0w
My0wNyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Vt
cHR5LWZpcnN0LWxpbmUtY3Jhc2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
ZW1wdHktZmlyc3QtbGluZS1jcmFzaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDU5ZTEyYzQ5
NGU2MDdkNTU0NDZmZjZjMDMyMmMyMzJjNWUxNzA0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzL2VtcHR5LWZpcnN0LWxpbmUtY3Jhc2gtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEgQEAKK1Rlc3RzIHRoYXQgdGhlIDplbXB0eSBwc2V1ZG8tY2xhc3MgZG9lc24ndCBjYXVz
ZSBhIGNyYXNoIHdoZW4gdGhlIGVtcHR5IHN0YXR1cyBjaGFuZ2VzIGR1cmluZyBwYXJzaW5nLiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2VtcHR5LWZpcnN0LWxpbmUtY3Jhc2gu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2VtcHR5LWZpcnN0LWxpbmUtY3Jhc2guaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lNGI3YTA0NzZmMzkyNjZiODFlNWE4YjBiZmYyZmQzMjNhOGNiZGNiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZW1wdHktZmlyc3QtbGluZS1jcmFz
aC5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdD4KK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworPC9zY3JpcHQ+Cis8c3R5bGU+CisqOmVtcHR5OmZpcnN0LWxpbmUgeyBiYWNr
Z3JvdW5kOiByZWQ7IH0KKzwvc3R5bGU+Cis8ZGl2PgorVGVzdHMgdGhhdCB0aGUgOmVtcHR5IHBz
ZXVkby1jbGFzcyBkb2Vzbid0IGNhdXNlIGEgY3Jhc2ggd2hlbiB0aGUgZW1wdHkgc3RhdHVzIGNo
YW5nZXMgZHVyaW5nIHBhcnNpbmcuCis8YnV0dG9uIGF1dG9mb2N1cz48L2J1dHRvbj4KKzwvZGl2
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDJiYzg2NzRiYmFmMmMyMzUyMjk2Y2U0MmUxNmVkNGNlOGE3ZmUzMmEu
LjI0YmRjMGU1YzA5NTZlODdlZTgwMWQ0ZDVmOWJmYjFkMDU2ODVkOWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNSBAQAorMjAxMS0wMy0wOCAgQWxpY2UgQm94aGFsbCAgPGFib3hoYWxsQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBOVUxMIHBvaW50ZXIgY3Jhc2ggd2hlbiB1c2luZyA6ZW1wdHkgYW5kIDpmaXJzdC1saW5lIHBz
ZXVkb2NsYXNzIHNlbGVjdG9ycyB0b2dldGhlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTMzMTYKKworICAgICAgICA6ZW1wdHkgaXMgY2FsY3VsYXRl
ZCBmb3IgZWFjaCBlbGVtZW50IGR1cmluZyBwYXJzaW5nLCBidXQgdGhlbiBub3QgCisgICAgICAg
IHJlY2FsY3VsYXRlZCBhZnRlciBhbnkgY2hpbGQgZWxlbWVudHMgYXJlIGF0dGFjaGVkLiBGb3Jj
ZSBzdHlsZSAKKyAgICAgICAgcmUtY2FsY3VsYXRpb24gb24gZWxlbWVudHMgd2hpY2ggaGF2ZSA6
ZW1wdHkgaW4gdGhlaXIgc3R5bGUgd2hlbgorICAgICAgICB0aGVpciBjaGlsZHJlbiBhcmUgY2hh
bmdlZC4KKworICAgICAgICBUZXN0OiBmYXN0L2Nzcy9lbXB0eS1maXJzdC1saW5lLWNyYXNoLmh0
bWwKKworICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNoZWNr
Rm9yRW1wdHlTdHlsZUNoYW5nZSk6IFB1bGwgb3V0IGVtcHR5IHN0eWxlIGNoZWNraW5nCisgICAg
ICAgIGxvZ2ljIGZyb20gY2hlY2tGb3JTaWJsaW5nU3R5bGVDaGFuZ2VzKCkuCisgICAgICAgIChX
ZWJDb3JlOjpjaGVja0ZvclNpYmxpbmdTdHlsZUNoYW5nZXMpOiBVc2UgbmV3IGNoZWNrRm9yRW1w
dHlTdHlsZUNoYW5nZXMoKQorICAgICAgICBtZXRob2QuCisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50OjpjaGlsZHJlbkNoYW5nZWQpOiAgQ2FsbCBjaGVja0ZvckVtcHR5U3R5bGVDaGFuZ2VzKCkg
d2hlbgorICAgICAgICBjYWxsZWQgd2l0aCBjaGFuZ2VkQnlQYXJzZXIgPSB0cnVlLgorCiAyMDEx
LTAzLTA3ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGltaXRyaSBHbGF6a292LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGI5Y2IzYWRk
ZDY2YzE1ZTEzYmQ0ODI5MjExZWZmZTY2M2YyZGY4ODAuLmJkZjUxNjQ3NDU2ODM1ZGE5NDc2OTRm
Y2Y0NjQ4MTExNTE5YzRhY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTExODMsNiArMTE4
MywxNSBAQCBib29sIEVsZW1lbnQ6OmNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKK3N0YXRpYyB2b2lkIGNoZWNrRm9yRW1wdHlTdHlsZUNoYW5n
ZShFbGVtZW50KiBlbGVtZW50LCBSZW5kZXJTdHlsZSogc3R5bGUpCit7CisgICAgaWYgKCFzdHls
ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHN0eWxlLT5hZmZlY3RlZEJ5RW1wdHkoKSAm
JiAoIXN0eWxlLT5lbXB0eVN0YXRlKCkgfHwgZWxlbWVudC0+aGFzQ2hpbGROb2RlcygpKSkKKyAg
ICAgICAgZWxlbWVudC0+c2V0TmVlZHNTdHlsZVJlY2FsYygpOworfQorCiBzdGF0aWMgdm9pZCBj
aGVja0ZvclNpYmxpbmdTdHlsZUNoYW5nZXMoRWxlbWVudCogZSwgUmVuZGVyU3R5bGUqIHN0eWxl
LCBib29sIGZpbmlzaGVkUGFyc2luZ0NhbGxiYWNrLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIE5vZGUqIGJlZm9yZUNoYW5nZSwgTm9kZSogYWZ0ZXJDaGFuZ2UsIGlu
dCBjaGlsZENvdW50RGVsdGEpCiB7CkBAIC0xMjU5LDE3ICsxMjY4LDE4IEBAIHN0YXRpYyB2b2lk
IGNoZWNrRm9yU2libGluZ1N0eWxlQ2hhbmdlcyhFbGVtZW50KiBlLCBSZW5kZXJTdHlsZSogc3R5
bGUsIGJvb2wgZmluCiAgICAgICAgIGUtPnNldE5lZWRzU3R5bGVSZWNhbGMoKTsKICAgICAKICAg
ICAvLyA6ZW1wdHkgc2VsZWN0b3IuCi0gICAgaWYgKHN0eWxlLT5hZmZlY3RlZEJ5RW1wdHkoKSAm
JiAoIXN0eWxlLT5lbXB0eVN0YXRlKCkgfHwgZS0+aGFzQ2hpbGROb2RlcygpKSkKLSAgICAgICAg
ZS0+c2V0TmVlZHNTdHlsZVJlY2FsYygpOworICAgIGNoZWNrRm9yRW1wdHlTdHlsZUNoYW5nZShl
LCBzdHlsZSk7CiB9CiAKIHZvaWQgRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdl
ZEJ5UGFyc2VyLCBOb2RlKiBiZWZvcmVDaGFuZ2UsIE5vZGUqIGFmdGVyQ2hhbmdlLCBpbnQgY2hp
bGRDb3VudERlbHRhKQogewogICAgIENvbnRhaW5lck5vZGU6OmNoaWxkcmVuQ2hhbmdlZChjaGFu
Z2VkQnlQYXJzZXIsIGJlZm9yZUNoYW5nZSwgYWZ0ZXJDaGFuZ2UsIGNoaWxkQ291bnREZWx0YSk7
Ci0gICAgaWYgKCFjaGFuZ2VkQnlQYXJzZXIpCisgICAgaWYgKGNoYW5nZWRCeVBhcnNlcikKKyAg
ICAgICAgY2hlY2tGb3JFbXB0eVN0eWxlQ2hhbmdlKHRoaXMsIHJlbmRlclN0eWxlKCkpOworICAg
IGVsc2UKICAgICAgICAgY2hlY2tGb3JTaWJsaW5nU3R5bGVDaGFuZ2VzKHRoaXMsIHJlbmRlclN0
eWxlKCksIGZhbHNlLCBiZWZvcmVDaGFuZ2UsIGFmdGVyQ2hhbmdlLCBjaGlsZENvdW50RGVsdGEp
OwogfQotICAgIAorCiB2b2lkIEVsZW1lbnQ6OmJlZ2luUGFyc2luZ0NoaWxkcmVuKCkKIHsKICAg
ICBjbGVhcklzUGFyc2luZ0NoaWxkcmVuRmluaXNoZWQoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>