<?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>56345</bug_id>
          
          <creation_ts>2011-03-14 17:05:28 -0700</creation_ts>
          <short_desc>REGRESSION: Crash in adjustMIMETypeIfNecessary since r81001</short_desc>
          <delta_ts>2011-03-16 12:29:13 -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>528+ (Nightly build)</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://insidetv.ew.com/2011/03/10/teenage-mutant-ninja-turtles-nickelodeon/?hpt=Sbin</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P1</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon">jon</reporter>
          <assigned_to name="Pratik Solanki">psolanki</assigned_to>
          <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>psolanki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>367364</commentid>
    <comment_count>0</comment_count>
    <who name="Jon">jon</who>
    <bug_when>2011-03-14 17:05:28 -0700</bug_when>
    <thetext>Crash while navigating to the linked site results in the following stack trace.


Thread 0 Crashed:  Dispatch queue: com.apple.main-thread
0   com.apple.CoreFoundation      	0x00007fff817bbeb0 CFStringGetLength + 80
1   com.apple.CoreFoundation      	0x00007fff817d0b2b CFStringHasPrefix + 27
2   com.apple.WebCore             	0x0000000101637183 WebCore::adjustMIMETypeIfNecessary(_CFURLResponse*) + 595 (RetainPtr.h:63)
3   com.apple.WebCore             	0x0000000101505b18 -[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:] + 136 (ResourceHandleMac.mm:891)
4   com.apple.Foundation          	0x00007fff840e8b67 _NSURLConnectionDidReceiveResponse + 123
5   com.apple.CFNetwork           	0x00007fff80f3aba4 URLConnectionClient::_clientSendDidReceiveResponse(_CFURLResponse*, URLConnectionClient::ClientConnectionEventQueue*) + 38
6   com.apple.CFNetwork           	0x00007fff80fa1a78 URLConnectionClient::ClientConnectionEventQueue::processAllEventsAndConsumePayload(XConnectionEventInfo&lt;XClientEvent, XClientEventParams&gt;*, long) + 456
7   com.apple.CFNetwork           	0x00007fff80fa1c1a URLConnectionClient::ClientConnectionEventQueue::processAllEventsAndConsumePayload(XConnectionEventInfo&lt;XClientEvent, XClientEventParams&gt;*, long) + 874
8   com.apple.CFNetwork           	0x00007fff80f28825 URLConnectionClient::processEvents() + 121
9   com.apple.CFNetwork           	0x00007fff80f28600 MultiplexerSource::perform() + 160
10  com.apple.CoreFoundation      	0x00007fff81802401 __CFRunLoopDoSources0 + 1361
11  com.apple.CoreFoundation      	0x00007fff818005f9 __CFRunLoopRun + 873
12  com.apple.CoreFoundation      	0x00007fff817ffdbf CFRunLoopRunSpecific + 575
13  com.apple.HIToolbox           	0x00007fff879d77ee RunCurrentEventLoopInMode + 333
14  com.apple.HIToolbox           	0x00007fff879d75f3 ReceiveNextEventCommon + 310
15  com.apple.HIToolbox           	0x00007fff879d74ac BlockUntilNextEventMatchingListInMode + 59
16  com.apple.AppKit              	0x00007fff86527e64 _DPSNextEvent + 718
17  com.apple.AppKit              	0x00007fff865277a9 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 155
18  com.apple.Safari              	0x000000010001605a 0x100000000 + 90202
19  com.apple.AppKit              	0x00007fff864ed48b -[NSApplication run] + 395
20  com.apple.AppKit              	0x00007fff864e61a8 NSApplicationMain + 364
21  com.apple.Safari              	0x0000000100009f7c 0x100000000 + 40828</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367365</commentid>
    <comment_count>1</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2011-03-14 17:13:57 -0700</bug_when>
    <thetext>Caused by my change in r80975 made for bug 55912.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367371</commentid>
    <comment_count>2</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2011-03-14 17:30:33 -0700</bug_when>
    <thetext>The code tries to check if the &quot;Content-Type&quot; header in the response is &quot;text/plain&quot;. But we don&apos;t do a NULL check here which means if the response did not have Content-Type set, we crash. Indeed, on that web page I am seeing a resource with the following response headers

Cache-Control:private, no-cache, no-cache=Set-Cookie, no-store, proxy-revalidate
Connection:keep-alive
Content-Length:0
Date:Tue, 15 Mar 2011 00:21:23 GMT
Expires:Mon, 01 Jan 1990 00:00:00 GMT
P3p:policyref=&quot;/w3c/p3p.xml&quot;, CP=&quot;NOI DSP COR NID OUR IND COM STA OTC&quot;
Pragma:no-cache
Server:CS
Set-Cookie:UID=14d8c28-205.180.175.167-1249085941; expires=Thu, 14-Mar-2013 00:21:23 GMT; path=/; domain=.scorecardresearch.com

In the debugger I see

525	            if (CFStringHasPrefix(contentType.get(), CFSTR(&quot;text/plain&quot;))) {
(gdb) p contentType
$1 = {
  m_ptr = 0x0
}

No Content-Type header present. This was fine in Obj-C when messaging nil &quot;just worked&quot;, but in CF code we need to do the NULL check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367383</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-03-14 17:42:55 -0700</bug_when>
    <thetext>Actually, you&apos;ll need to double check this manually.

Just because the server doesn&apos;t respond with content-type, we still expect content type in most cases;  CFNetwork should always do content type sniffing for remote content.

Please double check and make sure the NSURLResponse you get *also* doesn&apos;t have a content type - we&apos;ve definitely had cases in the past where the NSURL* and CFURL* code paths give different answers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367432</commentid>
    <comment_count>4</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2011-03-14 18:46:57 -0700</bug_when>
    <thetext>Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000000
0x00007fff85603eb0 in CFStringGetLength ()
Yes, the NSURLResponse doesn&apos;t have a Content-Type as well.

(gdb) up
#1  0x00007fff85618b2b in CFStringHasPrefix ()
(gdb) up
#2  0x00000001023506ab in WebCore::adjustMIMETypeIfNecessary (cfResponse=0x11f0ed6b0) at /Volumes/Data/psolanki/sources/external/WebKit/Source/WebCore/platform/network/mac/WebCoreURLResponse.mm:525
525	            if (CFStringHasPrefix(contentType.get(), CFSTR(&quot;text/plain&quot;))) {
(gdb) p contentType
$1 = {
  m_ptr = 0x0
}
(gdb) po cfResponse 
&lt;CFURLResponse 0x11f0ed6b0 [0x7fff70c26ee0]&gt;{url = http://cim.meebo.com/cmd/tc}
(gdb) up
#3  0x0000000102170a66 in -[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:] (self=0x121bd2000, _cmd=0x7fff810dbfff, connection=0x121bd41f0, r=0x1210f0a50) at /Volumes/Data/psolanki/sources/external/WebKit/Source/WebCore/platform/network/mac/ResourceHandleMac.mm:889
889	        adjustMIMETypeIfNecessary([r _CFURLResponse]);
(gdb) p r
$2 = (NSURLResponse *) 0x1210f0a50
(gdb) po [r allHeaderFields]
{
    Connection = &quot;keep-alive&quot;;
    Date = &quot;Tue, 15 Mar 2011 01:44:02 GMT&quot;;
    Server = &quot;nginx/0.7.62&quot;;
    &quot;Transfer-Encoding&quot; = Identity;
}
(gdb)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367436</commentid>
    <comment_count>5</comment_count>
      <attachid>85757</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2011-03-14 18:58:43 -0700</bug_when>
    <thetext>Created attachment 85757
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367566</commentid>
    <comment_count>6</comment_count>
      <attachid>85757</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-15 02:06:45 -0700</bug_when>
    <thetext>Comment on attachment 85757
Patch

Can we add a test for this change?  If we can&apos;t add a test, please explain why in the ChangeLog.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368079</commentid>
    <comment_count>7</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2011-03-15 17:34:30 -0700</bug_when>
    <thetext>&lt;rdar://problem/9139469&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368135</commentid>
    <comment_count>8</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2011-03-15 19:12:34 -0700</bug_when>
    <thetext>I tried creating a testcase using php as well as .asis files. I just can&apos;t seem to trigger the scenario in a layout test. If I am reading the code correctly, I need a case where CFNetwork gives us a nil (or application/octet-stream) mime type AND the HTTP header does not have a Content-Type field.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368161</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-03-15 20:45:49 -0700</bug_when>
    <thetext>What happens if you store the actual response that triggers this on insidetv.ew.com into an asis file?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368188</commentid>
    <comment_count>10</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2011-03-15 22:25:14 -0700</bug_when>
    <thetext>It&apos;s an XHR Request. CFNetwork gives us a nil MIME type on the response. And the headers don&apos;t have Content-Type.

Request URL:http://cim.meebo.com/cmd/tc
Request Method:POST
Status Code:200 OK

Request Headers:
Content-Type:application/x-www-form-urlencoded; charset=UTF-8
If-Modified-Since:Wed Dec 31 1969 16:00:00 GMT-0800 (PST)
Origin:http://cim.meebo.com
Referer:http://cim.meebo.com/cim/sandbox.php?lang=en&amp;version=v89_cim_10_3_7&amp;protocol=http%3A&amp;network=ew
User-Agent:Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-us) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4

Form Data:
bcookie:3a0939be3a7dbfce1983_nd
tcookie:255f218fe00f262af82f
partner:ew

Response Headers:
Connection:keep-alive
Date:Wed, 16 Mar 2011 05:10:48 GMT
Server:nginx/0.7.62
Transfer-Encoding:Identity</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368193</commentid>
    <comment_count>11</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2011-03-15 22:45:29 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; What happens if you store the actual response that triggers this on insidetv.ew.com into an asis file?

I tried. And it didn&apos;t seem to work. I keep getting text/html. Maybe I&apos;m doing something wrong?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368218</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-03-15 23:29:23 -0700</bug_when>
    <thetext>There are two things that could go wrong. First, the response may not match what we are getting from the real server, and then, interpreting it may hit a different code path. The former is easier to check - you can try requesting the resource from a local server with curl:

run-webkit-httpd
curl -i http://127.0.0.1:8000/path/resource.asis

For the latter - can you make a reduced test that hits this assertion after making a request to an actual remote server? It won&apos;t work from DumpRenderTree, because it blocks remote requests, but should work from Safari.

Note that Content-Type sniffing is supposed to be disabled for XMLHttpRequest responses. If you&apos;re getting a Content-Type that&apos;s not in response headers, that&apos;s worth a very deep look!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368247</commentid>
    <comment_count>13</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2011-03-16 00:47:18 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; There are two things that could go wrong. First, the response may not match what we are getting from the real server, and then, interpreting it may hit a different code path. The former is easier to check - you can try requesting the resource from a local server with curl:
&gt; 
&gt; run-webkit-httpd
&gt; curl -i http://127.0.0.1:8000/path/resource.asis

Here&apos;s my .asis file


pratiksolanki@bifzi $ cat resources/noContentType.asis Cache-Control:private
Connection:keep-alive
Content-Length:100
Date:Wed, 16 Mar 2011 01:45:52 GMT
X-Appserver:app95
X-Aspnet-Version:2.0.50727
X-Cache:MISS from cap92_2
X-Cache-Lookup:MISS from cap92_2:2002
X-Powered-By:ASP.NET

????DG?G???(!&lt;arch&gt;
.... binary dump ....

Here&apos;s what curl says

$ curl -i http://127.0.0.1:8000/xmlhttprequest/resources/noContentType.asis
HTTP/1.1 200 OK
Date: Wed, 16 Mar 2011 07:44:12 GMT
Server: Apache/2.2.15 (Unix) PHP/5.3.3 mod_ssl/2.2.15 OpenSSL/0.9.8l
Cache-Control: private
Connection: keep-alive, close
X-Appserver: app95
X-Aspnet-Version: 2.0.50727
X-Cache: MISS from cap92_2
X-Cache-Lookup: MISS from cap92_2:2002
X-Powered-By: ASP.NET
Content-Length: 14760
Content-Type: text/plain

????DG?G???(!&lt;arch&gt;
....

So how did text/plain get added? And how can I remove that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368345</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-03-16 08:56:22 -0700</bug_when>
    <thetext>Yeah, it gets added automatically. Curiously, a web search for &apos;apache &quot;no content-type&quot;&apos; returns both complaints from people who get no Content-Type, as well as unanswered questions about how to achieve that intentionally!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368347</commentid>
    <comment_count>15</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-03-16 09:03:33 -0700</bug_when>
    <thetext>Just a bizarre idea - Does your test case have a file extension?  If so, remove it.
My reading indicates Apache will be less likely to try and throw a mime-type on there if it can&apos;t look up the extension.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368359</commentid>
    <comment_count>16</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2011-03-16 09:55:13 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Just a bizarre idea - Does your test case have a file extension?  If so, remove it.
&gt; My reading indicates Apache will be less likely to try and throw a mime-type on there if it can&apos;t look up the extension.

I need the extension to be .asis so that apache treats it as such and doesn&apos;t add its own headers. If I remove the extension then I get

$ curl -i http://127.0.0.1:8000/xmlhttprequest/resources/noContentType
HTTP/1.1 200 OK
Date: Wed, 16 Mar 2011 16:36:59 GMT
Server: Apache/2.2.15 (Unix) PHP/5.3.3 mod_ssl/2.2.15 OpenSSL/0.9.8l
Last-Modified: Wed, 16 Mar 2011 16:27:13 GMT
ETag: &quot;57d86b-3a8d-49e9c046a3a40&quot;
Accept-Ranges: bytes
Content-Length: 14989
Connection: close
Content-Type: text/plain

Cache-Control:private
Connection:keep-alive
Content-Length:100
Date:Wed, 16 Mar 2011 01:45:52 GMT
X-Appserver:app95
X-Aspnet-Version:2.0.50727
X-Cache:MISS from cap92_2
X-Cache-Lookup:MISS from cap92_2:2002
X-Powered-By:ASP.NET

????DG?G???(!&lt;arch&gt;
....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368361</commentid>
    <comment_count>17</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-03-16 09:57:52 -0700</bug_when>
    <thetext>You can always force a handler with AddHandler directive in a .htaccess file regardless of extension, but I doubt that leaving out an extension will help anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368415</commentid>
    <comment_count>18</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2011-03-16 11:22:36 -0700</bug_when>
    <thetext>Ok. I can get apache to not set Content-Type by adding the following to .htaccess

&lt;Files &quot;noContentType.asis&quot;&gt;
DefaultType None
&lt;/Files&gt;

Patch coming up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368423</commentid>
    <comment_count>19</comment_count>
      <attachid>85947</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2011-03-16 11:35:18 -0700</bug_when>
    <thetext>Created attachment 85947
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368455</commentid>
    <comment_count>20</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2011-03-16 12:29:13 -0700</bug_when>
    <thetext>Committed r81267: &lt;http://trac.webkit.org/changeset/81267&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85757</attachid>
            <date>2011-03-14 18:58:43 -0700</date>
            <delta_ts>2011-03-16 11:35:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56345-20110314185842.patch</filename>
            <type>text/plain</type>
            <size>1890</size>
            <attacher name="Pratik Solanki">psolanki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODEwODgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjMDVlN2JjNzMxZTE2YmM2
MWVlYzBkMzdjZWRjNWI5NGY0NTE4Y2EwLi5lNzc1MjI5MGE4NzQyMTk4NGU0NWZlZmYzODc1NDdj
NDAyZmZkM2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDMtMTQgIFByYXRp
ayBTb2xhbmtpICA8cHNvbGFua2lAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJFR1JFU1NJT046IENyYXNoIGluIGFkanVzdE1JTUVU
eXBlSWZOZWNlc3Nhcnkgc2luY2UgcjgxMDAxCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD01NjM0NQorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9t
YWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tOgorICAgICAgICAoV2ViQ29yZTo6YWRqdXN0TUlNRVR5
cGVJZk5lY2Vzc2FyeSk6IEFkZCBOVUxMIGNoZWNrIGZvciBjb250ZW50IHR5cGUgaGVhZGVyLgor
CiAyMDExLTAzLTE0ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBKYW1lcyBSb2JpbnNvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5tbQppbmRleCBmYjZl
ZGY3MzEyZTQ3Nzg1NThlYWVjNzE5NTEyZDQ5Y2U5MWQzNzdiLi4wOTYwNDkyOWNkMzA4OGE3YzJm
ZGYwODUzMjNjZDU2MzY5NGJmMGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9uc2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tCkBAIC01MjIsNyArNTIy
LDcgQEAgdm9pZCBhZGp1c3RNSU1FVHlwZUlmTmVjZXNzYXJ5KENGVVJMUmVzcG9uc2VSZWYgY2ZS
ZXNwb25zZSkKICAgICAgICAgQ0ZIVFRQTWVzc2FnZVJlZiBtZXNzYWdlID0gd2tHZXRDRlVSTFJl
c3BvbnNlSFRUUFJlc3BvbnNlKGNmUmVzcG9uc2UpOwogICAgICAgICBpZiAobWVzc2FnZSkgewog
ICAgICAgICAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBjb250ZW50VHlwZShBZG9wdENGLCBD
RkhUVFBNZXNzYWdlQ29weUhlYWRlckZpZWxkVmFsdWUobWVzc2FnZSwgQ0ZTVFIoIkNvbnRlbnQt
VHlwZSIpKSk7Ci0gICAgICAgICAgICBpZiAoQ0ZTdHJpbmdIYXNQcmVmaXgoY29udGVudFR5cGUu
Z2V0KCksIENGU1RSKCJ0ZXh0L3BsYWluIikpKSB7CisgICAgICAgICAgICBpZiAoY29udGVudFR5
cGUgJiYgQ0ZTdHJpbmdIYXNQcmVmaXgoY29udGVudFR5cGUuZ2V0KCksIENGU1RSKCJ0ZXh0L3Bs
YWluIikpKSB7CiAgICAgICAgICAgICAgICAgc3RhdGljIENGU2V0UmVmIGJpbmFyeUV4dGVuc2lv
bnMgPSBjcmVhdGVCaW5hcnlFeHRlbnNpb25zU2V0KCk7CiAgICAgICAgICAgICAgICAgUmV0YWlu
UHRyPE5TU3RyaW5nPiBzdWdnZXN0ZWRGaWxlbmFtZShBZG9wdE5TLCAoTlNTdHJpbmcgKil3a0Nv
cHlDRlVSTFJlc3BvbnNlU3VnZ2VzdGVkRmlsZW5hbWUoY2ZSZXNwb25zZSkpOwogICAgICAgICAg
ICAgICAgIGlmICghQ0ZTZXRDb250YWluc1ZhbHVlKGJpbmFyeUV4dGVuc2lvbnMsIChDRlN0cmlu
Z1JlZikgW1tzdWdnZXN0ZWRGaWxlbmFtZS5nZXQoKSBwYXRoRXh0ZW5zaW9uXSBsb3dlcmNhc2VT
dHJpbmddKSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85947</attachid>
            <date>2011-03-16 11:35:18 -0700</date>
            <delta_ts>2011-03-16 11:37:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56345-20110316113517.patch</filename>
            <type>text/plain</type>
            <size>5626</size>
            <attacher name="Pratik Solanki">psolanki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODEwMDEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxMjg5YzE5NjI0M2Q2OGFkNjYwYzUy
MjRiM2I1MDc4NjI2NzkxYjVmLi44YWJjYzkzZmZmZmM4NDUxMzY1OWYyODEzZTYzMjgxY2QzNmZl
NDI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDMtMTYgIFByYXRpayBTb2xhbmtpICA8
cHNvbGFua2lAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJFR1JFU1NJT046IENyYXNoIGluIGFkanVzdE1JTUVUeXBlSWZOZWNlc3Nh
cnkgc2luY2UgcjgxMDAxCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01NjM0NQorCisgICAgICAgIEFkZCB0ZXN0IHRoYXQgdmVyaWZpZXMgdGhlIHdlIGRv
bid0IGNyYXNoIHdoZW4gYW4gWEhSIHJlc3BvbnNlIGhlYWRlcnMgZG9uJ3QgY29udGFpbgorICAg
ICAgICBDb250ZW50LVR5cGUuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3Jlc291cmNlcy8uaHRhY2Nlc3M6CisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9yZXNvdXJjZXMvbm9Db250ZW50VHlwZS5hc2lzOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LW5vLWNvbnRlbnQtdHlwZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0
cHJlcXVlc3Qtbm8tY29udGVudC10eXBlLmh0bWw6IEFkZGVkLgorCiAyMDExLTAzLTEzICBEYW4g
QmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdl
aW5pZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
cmVzb3VyY2VzLy5odGFjY2VzcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvcmVzb3VyY2VzLy5odGFjY2VzcwppbmRleCBhMzNlNGEyNWJmZDdkNmUyZmJjYTBiNWQ3NTc3
YTUzMTgxYjYxNWJhLi45Mjc3OTQwMWU3ZDVlOWVkNjQ1YTA4OTQ2YTVlNGFkYjkyY2EwNTRlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNl
cy8uaHRhY2Nlc3MKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9y
ZXNvdXJjZXMvLmh0YWNjZXNzCkBAIC03LDMgKzcsNiBAQCBBZGRDaGFyc2V0IGtvaTgtciAudHh0
CiA8RmlsZXMgInJlcGx5Mi54bWwiPgogQWRkQ2hhcnNldCB3aW5kb3dzLTEyNTEgLnhtbAogPC9G
aWxlcz4KKzxGaWxlcyAibm9Db250ZW50VHlwZS5hc2lzIj4KK0RlZmF1bHRUeXBlIE5vbmUKKzwv
RmlsZXM+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3Jlc291cmNlcy9ub0NvbnRlbnRUeXBlLmFzaXMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L3Jlc291cmNlcy9ub0NvbnRlbnRUeXBlLmFzaXMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjY2
NDk3YThiMzZkNmUwOTlmODliYzBlODU1ODZmNTJlZDZlNTZjZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL25vQ29udGVu
dFR5cGUuYXNpcwpAQCAtMCwwICsxLDUgQEAKK0Nvbm5lY3Rpb246a2VlcC1hbGl2ZQorRGF0ZTpX
ZWQsIDE2IE1hciAyMDExIDA1OjEwOjQ4IEdNVAorU2VydmVyOm5naW54LzAuNy42MgorVHJhbnNm
ZXItRW5jb2Rpbmc6SWRlbnRpdHkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1uby1jb250ZW50LXR5cGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVz
dC1uby1jb250ZW50LXR5cGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjczOGI4NDljMjk2YTgz
YmM4MWZjNzc3ZTZhMmMyZGU1YWU2ZTY5MDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LW5vLWNvbnRlbnQtdHlw
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitUZXN0IGNhc2UgZm9yIEJ1ZyA1NjM0NTog
UkVHUkVTU0lPTjogQ3Jhc2ggaW4gYWRqdXN0TUlNRVR5cGVJZk5lY2Vzc2FyeSBzaW5jZSByODEw
MDEKKworVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgYW4gWEhSIGNvbnRlbnQgd2l0aCBubyBDb250
ZW50LVR5cGUgc2V0IGRvZXMgbm90IGNyYXNoIHRoZSBicm93c2VyLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1uby1jb250
ZW50LXR5cGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1s
aHR0cHJlcXVlc3Qtbm8tY29udGVudC10eXBlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWEyYjFiZGQ1MGZm
OWQ0ZjA0ZmQ3ZTFlMTU1OTllMWNiZjU0MzQwOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3Qtbm8tY29udGVudC10
eXBlLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+IFRl
c3QgY2FzZSBmb3IgYnVnIDU2MzQ1IDwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPiBUZXN0
IGNhc2UgZm9yIEJ1ZyA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTYzNDUiPjU2MzQ1PC9hPjogUkVHUkVTU0lPTjogQ3Jhc2ggaW4gYWRqdXN0TUlNRVR5
cGVJZk5lY2Vzc2FyeSBzaW5jZSByODEwMDEgPC9wPgorPHA+IFRoaXMgdGVzdCB2ZXJpZmllcyB0
aGF0IGFuIFhIUiBjb250ZW50IHdpdGggbm8gQ29udGVudC1UeXBlIHNldCBkb2VzIG5vdCBjcmFz
aCB0aGUgYnJvd3Nlci4gPC9wPgorPGJvZHk+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCI+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUoKTsKK30KKworZnVuY3Rpb24gY2hlY2tEb25lKCkgeworICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKwordmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgp
OworcmVxLm9ubG9hZCA9IGNoZWNrRG9uZTsKK3JlcS5vcGVuKCJHRVQiLCAicmVzb3VyY2VzL25v
Q29udGVudFR5cGUuYXNpcyIsIHRydWUpOworcmVxLnNlbmQobnVsbCk7CisKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDYzOGQ4MmI4OWI4NzEyMTE1MTVhZTk2NTA3
Y2NlZDBhMjQyYTU2NmMuLjdjMjUxYTVjMDkxM2QxMzBlNjMzZWQxZWRmODVkNjg3Y2NlYmRmODAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0wMy0xNiAgUHJhdGlrIFNvbGFua2kg
IDxwc29sYW5raUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUkVHUkVTU0lPTjogQ3Jhc2ggaW4gYWRqdXN0TUlNRVR5cGVJZk5lY2Vz
c2FyeSBzaW5jZSByODEwMDEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTU2MzQ1CisKKyAgICAgICAgQWRkIE5VTEwgY2hlY2sgZm9yIENvbnRlbnQtVHlw
ZSBoZWFkZXIgZmllbGQuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC94bWxodHRwcmVxdWVzdC1uby1jb250ZW50LXR5cGUuaHRtbAorCisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9tYWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tOgorICAgICAgICAoV2ViQ29yZTo6
YWRqdXN0TUlNRVR5cGVJZk5lY2Vzc2FyeSk6CisKIDIwMTEtMDMtMTMgIFByYXRpayBTb2xhbmtp
ICA8cHNvbGFua2lAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3Rl
aW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJD
b3JlVVJMUmVzcG9uc2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9X
ZWJDb3JlVVJMUmVzcG9uc2UubW0KaW5kZXggZmI2ZWRmNzMxMmU0Nzc4NTU4ZWFlYzcxOTUxMmQ0
OWNlOTFkMzc3Yi4uMDk2MDQ5MjljZDMwODhhN2MyZmRmMDg1MzIzY2Q1NjM2OTRiZjBhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVVSTFJl
c3BvbnNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNv
cmVVUkxSZXNwb25zZS5tbQpAQCAtNTIyLDcgKzUyMiw3IEBAIHZvaWQgYWRqdXN0TUlNRVR5cGVJ
Zk5lY2Vzc2FyeShDRlVSTFJlc3BvbnNlUmVmIGNmUmVzcG9uc2UpCiAgICAgICAgIENGSFRUUE1l
c3NhZ2VSZWYgbWVzc2FnZSA9IHdrR2V0Q0ZVUkxSZXNwb25zZUhUVFBSZXNwb25zZShjZlJlc3Bv
bnNlKTsKICAgICAgICAgaWYgKG1lc3NhZ2UpIHsKICAgICAgICAgICAgIFJldGFpblB0cjxDRlN0
cmluZ1JlZj4gY29udGVudFR5cGUoQWRvcHRDRiwgQ0ZIVFRQTWVzc2FnZUNvcHlIZWFkZXJGaWVs
ZFZhbHVlKG1lc3NhZ2UsIENGU1RSKCJDb250ZW50LVR5cGUiKSkpOwotICAgICAgICAgICAgaWYg
KENGU3RyaW5nSGFzUHJlZml4KGNvbnRlbnRUeXBlLmdldCgpLCBDRlNUUigidGV4dC9wbGFpbiIp
KSkgeworICAgICAgICAgICAgaWYgKGNvbnRlbnRUeXBlICYmIENGU3RyaW5nSGFzUHJlZml4KGNv
bnRlbnRUeXBlLmdldCgpLCBDRlNUUigidGV4dC9wbGFpbiIpKSkgewogICAgICAgICAgICAgICAg
IHN0YXRpYyBDRlNldFJlZiBiaW5hcnlFeHRlbnNpb25zID0gY3JlYXRlQmluYXJ5RXh0ZW5zaW9u
c1NldCgpOwogICAgICAgICAgICAgICAgIFJldGFpblB0cjxOU1N0cmluZz4gc3VnZ2VzdGVkRmls
ZW5hbWUoQWRvcHROUywgKE5TU3RyaW5nICopd2tDb3B5Q0ZVUkxSZXNwb25zZVN1Z2dlc3RlZEZp
bGVuYW1lKGNmUmVzcG9uc2UpKTsKICAgICAgICAgICAgICAgICBpZiAoIUNGU2V0Q29udGFpbnNW
YWx1ZShiaW5hcnlFeHRlbnNpb25zLCAoQ0ZTdHJpbmdSZWYpIFtbc3VnZ2VzdGVkRmlsZW5hbWUu
Z2V0KCkgcGF0aEV4dGVuc2lvbl0gbG93ZXJjYXNlU3RyaW5nXSkpCg==
</data>
<flag name="review"
          id="78150"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>