<?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>13584</bug_id>
          
          <creation_ts>2007-05-04 00:23:16 -0700</creation_ts>
          <short_desc>&lt;script&gt; code wrongly assumes requests can&apos;t fail</short_desc>
          <delta_ts>2007-05-06 09:26:54 -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>New Bugs</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>13541</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>11225</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-05-04 00:23:16 -0700</bug_when>
    <thetext>This must be a recent regression:

This code:

void HTMLScriptElement::parseMappedAttribute(MappedAttribute *attr)
{
    const QualifiedName&amp; attrName = attr-&gt;name();
    if (attrName == srcAttr) {
        if (m_evaluated || m_cachedScript || m_createdByParser || !inDocument())
            return;

        // FIXME: Evaluate scripts in viewless documents.
        // See http://bugs.webkit.org/show_bug.cgi?id=5727
        if (!document()-&gt;frame())
            return;
    
        const AtomicString&amp; url = attr-&gt;value();
        if (!url.isEmpty()) {
            m_cachedScript = document()-&gt;docLoader()-&gt;requestScript(url, getAttribute(charsetAttr));
            m_cachedScript-&gt;ref(this);
        }
    } 

Assumes that requestScript() will never return 0.  That doesn&apos;t seem to be the case looking at requestScript.

I&apos;m not sure what the test case looks like yet, but I&apos;m certain it&apos;s possible to make one.


#0	0x0126df72 in WebCore::HTMLScriptElement::parseMappedAttribute at HTMLScriptElement.cpp:84
#1	0x0121ea97 in WebCore::StyledElement::attributeChanged at StyledElement.cpp:178
#2	0x0122448d in WebCore::NamedAttrMap::addAttribute at NamedAttrMap.cpp:287
#3	0x01227fd0 in WebCore::Element::setAttribute at Element.cpp:473
#4	0x01228181 in WebCore::Element::setAttribute at Element.cpp:154
#5	0x0126e128 in WebCore::HTMLScriptElement::setSrc at HTMLScriptElement.cpp:333
#6	0x012b4d61 in WebCore::JSHTMLScriptElement::putValueProperty at JSHTMLScriptElement.cpp:180
#7	0x015793d6 in KJS::lookupPut&lt;WebCore::JSHTMLScriptElement&gt; at lookup.h:252
#8	0x01579418 in KJS::lookupPut&lt;WebCore::JSHTMLScriptElement, KJS::JSHTMLElement&gt; at lookup.h:268
#9	0x012b5083 in WebCore::JSHTMLScriptElement::put at JSHTMLScriptElement.cpp:151
#10	0x005479c2 in KJS::AssignDotNode::evaluate at nodes.cpp:1498
#11	0x00541f0f in KJS::ExprStatementNode::execute at nodes.cpp:1723
#12	0x0053f0e7 in KJS::SourceElementsNode::execute at nodes.cpp:2522
#13	0x00517f1c in KJS::BlockNode::execute at nodes.cpp:1699
#14	0x0053d3c0 in KJS::GlobalFuncImp::callAsFunction at function.cpp:803
#15	0x0051b3b6 in KJS::JSObject::call at object.cpp:97
#16	0x00544e3b in KJS::FunctionCallResolveNode::evaluate at nodes.cpp:694
#17	0x00541f0f in KJS::ExprStatementNode::execute at nodes.cpp:1723
#18	0x0053f1f2 in KJS::SourceElementsNode::execute at nodes.cpp:2528
#19	0x00517f1c in KJS::BlockNode::execute at nodes.cpp:1699
#20	0x00517fe7 in KJS::DeclaredFunctionImp::execute at function.cpp:317
#21	0x00532fc9 in KJS::FunctionImp::callAsFunction at function.cpp:104
#22	0x0051b3b6 in KJS::JSObject::call at object.cpp:97
#23	0x00544e3b in KJS::FunctionCallResolveNode::evaluate at nodes.cpp:694
#24	0x00541f0f in KJS::ExprStatementNode::execute at nodes.cpp:1723
#25	0x0053f1f2 in KJS::SourceElementsNode::execute at nodes.cpp:2528
#26	0x00517f1c in KJS::BlockNode::execute at nodes.cpp:1699
#27	0x00517fe7 in KJS::DeclaredFunctionImp::execute at function.cpp:317
#28	0x00532fc9 in KJS::FunctionImp::callAsFunction at function.cpp:104
#29	0x0051b3b6 in KJS::JSObject::call at object.cpp:97
#30	0x00544e3b in KJS::FunctionCallResolveNode::evaluate at nodes.cpp:694
#31	0x00541f0f in KJS::ExprStatementNode::execute at nodes.cpp:1723
#32	0x0053f0e7 in KJS::SourceElementsNode::execute at nodes.cpp:2522
#33	0x00517f1c in KJS::BlockNode::execute at nodes.cpp:1699
#34	0x00517fe7 in KJS::DeclaredFunctionImp::execute at function.cpp:317
#35	0x00532fc9 in KJS::FunctionImp::callAsFunction at function.cpp:104
#36	0x0051b3b6 in KJS::JSObject::call at object.cpp:97
#37	0x0123d07a in KJS::JSAbstractEventListener::handleEvent at kjs_events.cpp:123
#38	0x010c8c18 in WebCore::Document::handleWindowEvent at Document.cpp:2341
#39	0x012097e7 in WebCore::EventTargetNode::dispatchWindowEvent at EventTargetNode.cpp:337
#40	0x010cb057 in WebCore::Document::implicitClose at Document.cpp:1382
#41	0x0137a8c3 in WebCore::FrameLoader::checkEmitLoadEvent at FrameLoader.cpp:1187
#42	0x01384a14 in WebCore::FrameLoader::checkCompleted at FrameLoader.cpp:1144
#43	0x013859be in WebCore::FrameLoader::finishedParsing at FrameLoader.cpp:1094
#44	0x010c6b26 in WebCore::Document::finishedParsing at Document.cpp:3414
#45	0x0101b86f in WebCore::HTMLParser::finished at HTMLParser.cpp:1411
#46	0x010201bf in WebCore::HTMLTokenizer::end at HTMLTokenizer.cpp:1501
#47	0x0102057f in WebCore::HTMLTokenizer::finish at HTMLTokenizer.cpp:1541
#48	0x010c53c0 in WebCore::Document::finishParsing at Document.cpp:1530
#49	0x01387240 in WebCore::FrameLoader::endIfNotLoading at FrameLoader.cpp:964
#50	0x01387281 in WebCore::FrameLoader::end at FrameLoader.cpp:948
#51	0x0138a1f2 in WebCore::DocumentLoader::finishedLoading at DocumentLoader.cpp:315
#52	0x01381bec in WebCore::FrameLoader::finishedLoading at FrameLoader.cpp:2571
#53	0x0138bf99 in WebCore::MainResourceLoader::didFinishLoading at MainResourceLoader.cpp:300
#54	0x0138d7c6 in WebCore::ResourceLoader::didFinishLoading at ResourceLoader.cpp:335
#55	0x0136c5d9 in -[WebCoreResourceHandleAsDelegate connectionDidFinishLoading:] at ResourceHandleMac.mm:369
#56	0x92854d74 in -[NSURLConnection(NSURLConnectionInternal) _sendDidFinishLoadingCallback]
#57	0x92852e19 in -[NSURLConnection(NSURLConnectionInternal) _sendCallbacks]
#58	0x92852ab5 in _sendCallbacks
#59	0x9082bf92 in CFRunLoopRunSpecific
#60	0x9082bace in CFRunLoopRunInMode
#61	0x92ddc8d8 in RunCurrentEventLoopInMode
#62	0x92ddbfe2 in ReceiveNextEventCommon
#63	0x92ddbe39 in BlockUntilNextEventMatchingListInMode
#64	0x93282465 in _DPSNextEvent
#65	0x93282056 in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:]
#66	0x00006f96 in ??
#67	0x9327bddb in -[NSApplication run]
#68	0x9326fd2f in NSApplicationMain
#69	0x0005f7de in ??
#70	0x0005f6f9 in ??</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11226</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-05-04 00:24:19 -0700</bug_when>
    <thetext>This is as of r21245</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11227</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-05-04 00:27:33 -0700</bug_when>
    <thetext>These seem to be the only cases in which Cache::requestResource would return 0:

    if (resource-&gt;type() != type)
        return 0;

#if USE(LOW_BANDWIDTH_DISPLAY)
    // addLowBandwidthDisplayRequest() returns true if requesting CSS or JS during low bandwidth display.
    // Here, return 0 to not block parsing or layout.
    if (docLoader-&gt;frame() &amp;&amp; docLoader-&gt;frame()-&gt;loader()-&gt;addLowBandwidthDisplayRequest(resource))
        return 0;
#endif

All others would return a resource object (or would have called ASSERT earlier).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11229</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-05-04 00:35:15 -0700</bug_when>
    <thetext>The test case for http://bugs.webkit.org/show_bug.cgi?id=13541 attachment: http://bugs.webkit.org/attachment.cgi?id=14266 actually causes this crash.  It can be reduced further.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10858</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-04 22:20:32 -0700</bug_when>
    <thetext>&lt;rdar://problem/5183698&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10886</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-05-05 08:50:24 -0700</bug_when>
    <thetext>There&apos;s one more instance of the same issue in HTMLScriptElement::insertedIntoDocument().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10887</commentid>
    <comment_count>6</comment_count>
      <attachid>14357</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-05-05 08:54:30 -0700</bug_when>
    <thetext>Created attachment 14357
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10888</commentid>
    <comment_count>7</comment_count>
      <attachid>14357</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-05 09:02:32 -0700</bug_when>
    <thetext>Comment on attachment 14357
proposed fix

Don&apos;t we need to fire an errorEvent if we get back 0?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10919</commentid>
    <comment_count>8</comment_count>
      <attachid>14357</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-05 15:16:12 -0700</bug_when>
    <thetext>Comment on attachment 14357
proposed fix

We do need to fire the error event.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10929</commentid>
    <comment_count>9</comment_count>
      <attachid>14371</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-05-05 23:46:36 -0700</bug_when>
    <thetext>Created attachment 14371
proposed fix

Dispatches errorEvent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10946</commentid>
    <comment_count>10</comment_count>
      <attachid>14371</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-06 08:35:48 -0700</bug_when>
    <thetext>Comment on attachment 14371
proposed fix

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10950</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-05-06 09:26:54 -0700</bug_when>
    <thetext>Committed revision 21275.
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14357</attachid>
            <date>2007-05-05 08:54:30 -0700</date>
            <delta_ts>2007-05-05 23:46:36 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>13584r1_patch.txt</filename>
            <type>text/plain</type>
            <size>4061</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDIxMjcyKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDctMDUtMDUgIEFsZXhleSBQcm9za3VyeWFr
b3YgIDxhcEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTg0
CisgICAgICAgIDxzY3JpcHQ+IGNvZGUgd3JvbmdseSBhc3N1bWVzIHJlcXVlc3RzIGNhbid0IGZh
aWwKKworICAgICAgICAqIGZhc3QvbG9hZGVyL3VubG9hZGFibGUtc2NyaXB0LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9sb2FkZXIvdW5sb2FkYWJsZS1zY3JpcHQuaHRtbDog
QWRkZWQuCisKIDIwMDctMDUtMDQgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEFkZWxlLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIv
dW5sb2FkYWJsZS1zY3JpcHQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvbG9hZGVyL3VubG9hZGFibGUtc2NyaXB0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3VubG9hZGFibGUtc2NyaXB0LWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1IEBACitUZXN0IGZvciBidWcgMTM1ODQ6IDxzY3Jp
cHQ+IGNvZGUgd3JvbmdseSBhc3N1bWVzIHJlcXVlc3RzIGNhbid0IGZhaWwuCisKK05vIGNyYXNo
ID09IFNVQ0NFU1MuCisKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9s
b2FkZXIvdW5sb2FkYWJsZS1zY3JpcHQtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3Zu
Om1pbWUtdHlwZQogICArIHRleHQvcGxhaW4KTmFtZTogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2
ZQoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3VubG9hZGFibGUtc2NyaXB0Lmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvdW5sb2FkYWJsZS1zY3JpcHQu
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3VubG9hZGFibGUt
c2NyaXB0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjEgQEAKKzxodG1sPgorPGJvZHk+
CisgICAgPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTM1ODQiPmJ1ZyAxMzU4NDwvYT46CisgICAgJmx0O3NjcmlwdD4gY29kZSB3cm9u
Z2x5IGFzc3VtZXMgcmVxdWVzdHMgY2FuJ3QgZmFpbC48L3A+CisgICAgPHA+Tm8gY3Jhc2ggPT0g
U1VDQ0VTUy48L3A+CisgICAgCisgICAgPGltZyBzcmM9InJlc291cmNlcy9mb29iYXIiPgorICAg
IDxzY3JpcHQ+PC9zY3JpcHQ+CisKKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3Jp
cHQnKVswXS5zcmMgPSAicmVzb3VyY2VzL2Zvb2JhciI7CisgICAgICAgIAorICAgICAgICBzY3Jp
cHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKKyAgICAgICAgc2NyaXB0LnNl
dEF0dHJpYnV0ZSgic3JjIiwgInJlc291cmNlcy9mb29iYXIiKTsKKyAgICAgICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChzY3JpcHQpOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvdW5sb2FkYWJs
ZS1zY3JpcHQuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L2h0
bWwKCkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5n
ZUxvZwkocmV2aXNpb24gMjEyNzIpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE3IEBACisyMDA3LTA1LTA1ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBA
d2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzU4NAorICAgICAg
ICA8c2NyaXB0PiBjb2RlIHdyb25nbHkgYXNzdW1lcyByZXF1ZXN0cyBjYW4ndCBmYWlsCisKKyAg
ICAgICAgVGVzdDogZmFzdC9sb2FkZXIvdW5sb2FkYWJsZS1zY3JpcHQuaHRtbAorCisgICAgICAg
ICogaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2Ny
aXB0RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFNjcmlwdEVsZW1lbnQ6Omluc2VydGVkSW50b0RvY3VtZW50KToKKyAgICAgICAgQ2hlY2sgdGhl
IHJldHVybiB2YWx1ZSBvZiByZXF1ZXN0U2NyaXB0KCkuCisKIDIwMDctMDUtMDUgIFJvYiBCdWlz
ICA8YnVpc0BrZGUub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9saXZlci4KSW5kZXg6IFdl
YkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9o
dG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcAkocmV2aXNpb24gMjExOTkpCisrKyBXZWJDb3JlL2h0
bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MSw3ICs4MSw4IEBA
IHZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmkKICAgICAgICAgY29uc3Qg
QXRvbWljU3RyaW5nJiB1cmwgPSBhdHRyLT52YWx1ZSgpOwogICAgICAgICBpZiAoIXVybC5pc0Vt
cHR5KCkpIHsKICAgICAgICAgICAgIG1fY2FjaGVkU2NyaXB0ID0gZG9jdW1lbnQoKS0+ZG9jTG9h
ZGVyKCktPnJlcXVlc3RTY3JpcHQodXJsLCBnZXRBdHRyaWJ1dGUoY2hhcnNldEF0dHIpKTsKLSAg
ICAgICAgICAgIG1fY2FjaGVkU2NyaXB0LT5yZWYodGhpcyk7CisgICAgICAgICAgICBpZiAobV9j
YWNoZWRTY3JpcHQpCisgICAgICAgICAgICAgICAgbV9jYWNoZWRTY3JpcHQtPnJlZih0aGlzKTsK
ICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAoYXR0ck5hbWUgPT0gb25sb2FkQXR0cikKICAgICAg
ICAgc2V0SFRNTEV2ZW50TGlzdGVuZXIobG9hZEV2ZW50LCBhdHRyKTsKQEAgLTExNiw3ICsxMTcs
OCBAQCB2b2lkIEhUTUxTY3JpcHRFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1CiAgICAgY29uc3Qg
QXRvbWljU3RyaW5nJiB1cmwgPSBnZXRBdHRyaWJ1dGUoc3JjQXR0cik7CiAgICAgaWYgKCF1cmwu
aXNFbXB0eSgpKSB7CiAgICAgICAgIG1fY2FjaGVkU2NyaXB0ID0gZG9jdW1lbnQoKS0+ZG9jTG9h
ZGVyKCktPnJlcXVlc3RTY3JpcHQodXJsLCBnZXRBdHRyaWJ1dGUoY2hhcnNldEF0dHIpKTsKLSAg
ICAgICAgbV9jYWNoZWRTY3JpcHQtPnJlZih0aGlzKTsKKyAgICAgICAgaWYgKG1fY2FjaGVkU2Ny
aXB0KQorICAgICAgICAgICAgbV9jYWNoZWRTY3JpcHQtPnJlZih0aGlzKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAo=
</data>
<flag name="review"
          id="5851"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14371</attachid>
            <date>2007-05-05 23:46:36 -0700</date>
            <delta_ts>2007-05-06 08:35:48 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>13584r2_patch.txt</filename>
            <type>text/plain</type>
            <size>4573</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDIxMjczKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDctMDUtMDUgIEFsZXhleSBQcm9za3VyeWFr
b3YgIDxhcEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTg0
CisgICAgICAgIDxzY3JpcHQ+IGNvZGUgd3JvbmdseSBhc3N1bWVzIHJlcXVlc3RzIGNhbid0IGZh
aWwKKworICAgICAgICAqIGZhc3QvbG9hZGVyL3VubG9hZGFibGUtc2NyaXB0LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9sb2FkZXIvdW5sb2FkYWJsZS1zY3JpcHQuaHRtbDog
QWRkZWQuCisKIDIwMDctMDUtMDQgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEFkZWxlLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIv
dW5sb2FkYWJsZS1zY3JpcHQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvbG9hZGVyL3VubG9hZGFibGUtc2NyaXB0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3VubG9hZGFibGUtc2NyaXB0LWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5IEBACitUZXN0IGZvciBidWcgMTM1ODQ6IDxzY3Jp
cHQ+IGNvZGUgd3JvbmdseSBhc3N1bWVzIHJlcXVlc3RzIGNhbid0IGZhaWwuCisKK05vIGNyYXNo
ID09IFNVQ0NFU1MuCisKK29uZXJyb3IgY2FsbGVkIChnb29kISkKKworb25lcnJvciBjYWxsZWQg
KGdvb2QhKQorCisKClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvbG9hZGVy
L3VubG9hZGFibGUtc2NyaXB0LWV4cGVjdGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1l
LXR5cGUKICAgKyB0ZXh0L3BsYWluCk5hbWU6IHN2bjplb2wtc3R5bGUKICAgKyBuYXRpdmUKCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci91bmxvYWRhYmxlLXNjcmlwdC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3VubG9hZGFibGUtc2NyaXB0Lmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci91bmxvYWRhYmxlLXNjcmlw
dC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMyIEBACis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdD4KK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKSB7CisgIHZhciBwID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgicCIpOworICBwLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1l
c3NhZ2UpKTsKKyAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGls
ZChwKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25lcnJvcj0ibG9nKCdvbmVycm9y
IGNhbGxlZCAoZ29vZCEpJykiPgorICAgIDxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHA6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTg0Ij5idWcgMTM1ODQ8L2E+OgorICAgICZs
dDtzY3JpcHQ+IGNvZGUgd3JvbmdseSBhc3N1bWVzIHJlcXVlc3RzIGNhbid0IGZhaWwuPC9wPgor
ICAgIDxwPk5vIGNyYXNoID09IFNVQ0NFU1MuPC9wPgorICAgIAorICAgIDxkaXYgaWQ9Y29uc29s
ZT48L2Rpdj4KKyAgICAKKyAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2Zvb2JhciI+CisgICAgPHNj
cmlwdCBpZD10ZXN0X3NjcmlwdD48L3NjcmlwdD4KKworICAgIDxzY3JpcHQ+CisgICAgICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Rlc3Rfc2NyaXB0Jykuc3JjID0gInJlc291cmNlcy9mb29iYXIiOworICAgICAgICAKKyAgICAg
ICAgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CisgICAgICAgIHNj
cmlwdC5zZXRBdHRyaWJ1dGUoInNyYyIsICJyZXNvdXJjZXMvZm9vYmFyIik7CisgICAgICAgIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3Vu
bG9hZGFibGUtc2NyaXB0Lmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsg
dGV4dC9odG1sCgpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMjc0KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAwNy0wNS0wNSAgQWxleGV5IFByb3NrdXJ5YWtv
diAgPGFwQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM1ODQK
KyAgICAgICAgPHNjcmlwdD4gY29kZSB3cm9uZ2x5IGFzc3VtZXMgcmVxdWVzdHMgY2FuJ3QgZmFp
bAorCisgICAgICAgIFRlc3Q6IGZhc3QvbG9hZGVyL3VubG9hZGFibGUtc2NyaXB0Lmh0bWwKKwor
ICAgICAgICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFNjcmlwdEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxTY3JpcHRFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCk6CisgICAgICAgIENo
ZWNrIHRoZSByZXR1cm4gdmFsdWUgb2YgcmVxdWVzdFNjcmlwdCgpLgorCiAyMDA3LTA1LTA2ICBB
bGV4ZXkgUHJvc2t1cnlha292ICA8YXBAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBEYXJpbi4KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcAkocmV2aXNpb24gMjEy
NzMpCisrKyBXZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC04MSw3ICs4MSwxMCBAQCB2b2lkIEhUTUxTY3JpcHRFbGVtZW50OjpwYXJzZU1hcHBlZEF0
dHJpCiAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdXJsID0gYXR0ci0+dmFsdWUoKTsKICAg
ICAgICAgaWYgKCF1cmwuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBtX2NhY2hlZFNjcmlwdCA9
IGRvY3VtZW50KCktPmRvY0xvYWRlcigpLT5yZXF1ZXN0U2NyaXB0KHVybCwgZ2V0QXR0cmlidXRl
KGNoYXJzZXRBdHRyKSk7Ci0gICAgICAgICAgICBtX2NhY2hlZFNjcmlwdC0+cmVmKHRoaXMpOwor
ICAgICAgICAgICAgaWYgKG1fY2FjaGVkU2NyaXB0KQorICAgICAgICAgICAgICAgIG1fY2FjaGVk
U2NyaXB0LT5yZWYodGhpcyk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZGlz
cGF0Y2hIVE1MRXZlbnQoZXJyb3JFdmVudCwgdHJ1ZSwgZmFsc2UpOwogICAgICAgICB9CiAgICAg
fSBlbHNlIGlmIChhdHRyTmFtZSA9PSBvbmxvYWRBdHRyKQogICAgICAgICBzZXRIVE1MRXZlbnRM
aXN0ZW5lcihsb2FkRXZlbnQsIGF0dHIpOwpAQCAtMTE2LDcgKzExOSwxMCBAQCB2b2lkIEhUTUxT
Y3JpcHRFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiB1
cmwgPSBnZXRBdHRyaWJ1dGUoc3JjQXR0cik7CiAgICAgaWYgKCF1cmwuaXNFbXB0eSgpKSB7CiAg
ICAgICAgIG1fY2FjaGVkU2NyaXB0ID0gZG9jdW1lbnQoKS0+ZG9jTG9hZGVyKCktPnJlcXVlc3RT
Y3JpcHQodXJsLCBnZXRBdHRyaWJ1dGUoY2hhcnNldEF0dHIpKTsKLSAgICAgICAgbV9jYWNoZWRT
Y3JpcHQtPnJlZih0aGlzKTsKKyAgICAgICAgaWYgKG1fY2FjaGVkU2NyaXB0KQorICAgICAgICAg
ICAgbV9jYWNoZWRTY3JpcHQtPnJlZih0aGlzKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
ZGlzcGF0Y2hIVE1MRXZlbnQoZXJyb3JFdmVudCwgdHJ1ZSwgZmFsc2UpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCg==
</data>
<flag name="review"
          id="5857"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>