<?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>87183</bug_id>
          
          <creation_ts>2012-05-22 17:00:59 -0700</creation_ts>
          <short_desc>Web Inspector: CodeGeneratorInspector.py: protect typed API from C++ implicit float to int cast</short_desc>
          <delta_ts>2016-08-03 11:05:35 -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>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>
          <dependson>131596</dependson>
          <blocked>147067</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Peter Rybin">prybin</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bburg</cc>
    
    <cc>bweinstein</cc>
    
    <cc>caseq</cc>
    
    <cc>graouts</cc>
    
    <cc>jberlin</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>menard</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>630938</commentid>
    <comment_count>0</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-05-22 17:00:59 -0700</bug_when>
    <thetext>C++ implicit cast from float or double to int creates a breach in inspector typed API.
For example one can mistakenly have protocol attribute type &quot;int&quot; while actual value type in C++ is &quot;float&quot;. The value will be silently truncated to integer without a warning.
Make sure that passing float or double to inspector typed API won&apos;t compile.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631003</commentid>
    <comment_count>1</comment_count>
      <attachid>143419</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-05-22 17:52:12 -0700</bug_when>
    <thetext>Created attachment 143419
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631216</commentid>
    <comment_count>2</comment_count>
      <attachid>143419</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-05-22 22:15:55 -0700</bug_when>
    <thetext>Comment on attachment 143419
Patch

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

&gt; Source/WebCore/inspector/CodeGeneratorInspector.py:2240
&gt; +// A small trancient wrapper around int type, that can be used as a funciton parameter type

typo: transient

&gt; Source/WebCore/inspector/CodeGeneratorInspector.py:2241
&gt; +// cleverly diallowing C++ implicit casts from float or double.

typo: disallowing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631453</commentid>
    <comment_count>3</comment_count>
      <attachid>143419</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-05-23 03:19:29 -0700</bug_when>
    <thetext>Comment on attachment 143419
Patch

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

I don&apos;t like the way we black-list types that should not be converted. How about more generic approach, e.g.

emplate&lt;typename T1, typename T2&gt; struct no_implicit_cast {
};

template&lt;typename T&gt; struct no_implicit_cast&lt;T, T&gt; {
    static void assign(T&amp; l, const T&amp; r) { l = r; }
};

template&lt;typename T&gt; class exact_type {
private:
    T value;

public:
    template&lt;typename T2&gt; exact_type(T2 v) { no_implicit_cast&lt;T, T2&gt;::assign(value, v); }
    operator T() const { return value; }
};

&gt; Source/WebCore/inspector/CodeGeneratorInspector.py:2262
&gt; +template&lt;&gt; class ExactlyIntHelper&lt;float&gt; { /* no cast method for float */ };
&gt; +template&lt;&gt; class ExactlyIntHelper&lt;double&gt; { /* no cast method for double */ };

So why just float and double? What about char?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631575</commentid>
    <comment_count>4</comment_count>
      <attachid>143419</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-05-23 06:07:36 -0700</bug_when>
    <thetext>Comment on attachment 143419
Patch

r- until Andrey&apos;s comments are addressed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631603</commentid>
    <comment_count>5</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-05-23 06:37:29 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 143419 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=143419&amp;action=review
&gt; 
&gt; I don&apos;t like the way we black-list types that should not be converted. How about more generic approach, e.g.

Can you whitelist enum to int cast this way? This is a quite popular case.
Plus unsigned to int cast and similar ones should be possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631696</commentid>
    <comment_count>6</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-05-23 08:46:07 -0700</bug_when>
    <thetext>Yurys,
we have a general question here. Current approach filters out only floats and doubles.
Andrey suggests more consistent solution, that would also disallow enums and longs. That would require explicit static_cast&lt;&gt; in several places throughout our code. I found this a bit unrequested effect.
What would you say?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632402</commentid>
    <comment_count>7</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-05-23 21:31:35 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Yurys,
&gt; we have a general question here. Current approach filters out only floats and doubles.
&gt; Andrey suggests more consistent solution, that would also disallow enums and longs. That would require explicit static_cast&lt;&gt; in several places throughout our code. I found this a bit unrequested effect.
&gt; What would you say?
I think adding explicit type casts for longs would be fine as we can loose precision in those places and should probably switch the code from long to int or fix the protocol. As for the enums - all of them a generated and we could generate no_implicit_cast specializations for them as a bonus we wouldn&apos;t be able to pass enum values not from the protocol to the protocol messages. What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632409</commentid>
    <comment_count>8</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-05-23 21:45:33 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; Yurys,
&gt; &gt; we have a general question here. Current approach filters out only floats and doubles.
&gt; &gt; Andrey suggests more consistent solution, that would also disallow enums and longs. That would require explicit static_cast&lt;&gt; in several places throughout our code. I found this a bit unrequested effect.
&gt; &gt; What would you say?

&gt; I think adding explicit type casts for longs would be fine as we can loose precision in those places and should probably switch the code from long to int or fix the protocol. As for the enums - all of them a generated and we could generate no_implicit_cast specializations for them as a bonus we wouldn&apos;t be able to pass enum values not from the protocol to the protocol messages. What do you think?

Enums are not generated, all enums in question are hand-written. Disallowing implicit casts for them is not a problem. Quite opposite, I worked for allowing implicit casts for them.
If you feel like it&apos;s ok to do explicit casts for enums and longs, I&apos;m fine. 

That would make my part easier. My concerns were about burdening the codebase with out-of-nowhere casts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632687</commentid>
    <comment_count>9</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-05-24 05:58:07 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; (In reply to comment #6)
&gt; &gt; &gt; Yurys,
&gt; &gt; &gt; we have a general question here. Current approach filters out only floats and doubles.
&gt; &gt; &gt; Andrey suggests more consistent solution, that would also disallow enums and longs. That would require explicit static_cast&lt;&gt; in several places throughout our code. I found this a bit unrequested effect.
&gt; &gt; &gt; What would you say?
&gt; 
&gt; &gt; I think adding explicit type casts for longs would be fine as we can loose precision in those places and should probably switch the code from long to int or fix the protocol. As for the enums - all of them a generated and we could generate no_implicit_cast specializations for them as a bonus we wouldn&apos;t be able to pass enum values not from the protocol to the protocol messages. What do you think?
&gt; 
&gt; Enums are not generated, all enums in question are hand-written. Disallowing implicit casts for them is not a problem. Quite opposite, I worked for allowing implicit casts for them.
Do you have an estimate on how many enums are passed as integers through the protocol(should be easy to detect them with the compiler)? As Andrey suggests we should probably use enums explicitly declared in the protocol instead in those cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634830</commentid>
    <comment_count>10</comment_count>
      <attachid>144255</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-05-27 17:35:08 -0700</bug_when>
    <thetext>Created attachment 144255
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634831</commentid>
    <comment_count>11</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-05-27 17:36:35 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Created an attachment (id=144255) [details]
&gt; Patch

All types are now disallowed but int and unsigned int.

11 static-casts in the codebase, including 3 for enums.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634968</commentid>
    <comment_count>12</comment_count>
      <attachid>144255</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-28 01:03:41 -0700</bug_when>
    <thetext>Comment on attachment 144255
Patch

Clearing flags on attachment: 144255

Committed r118652: &lt;http://trac.webkit.org/changeset/118652&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634969</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-28 01:03:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635220</commentid>
    <comment_count>14</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-05-28 07:59:51 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; All reviewed patches have been landed.  Closing bug.

Hi,

As http://build.webkit.org/builders/Lion%20Debug%20%28Build%29 and many other Mac bots (http://build.webkit.org/waterfall?category=AppleMac) the build was broken by this patch (Mac OS Lion apparently).

I landed a build fix (hopefully!) with http://trac.webkit.org/changeset/118681.

Please watch the bots :).

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635399</commentid>
    <comment_count>15</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-05-28 13:58:22 -0700</bug_when>
    <thetext>Thanks a lot for the fix. Looks totally legit.
I&apos;m sorry, indeed I forget to watch this land.


(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; All reviewed patches have been landed.  Closing bug.
&gt; 
&gt; Hi,
&gt; 
&gt; As http://build.webkit.org/builders/Lion%20Debug%20%28Build%29 and many other Mac bots (http://build.webkit.org/waterfall?category=AppleMac) the build was broken by this patch (Mac OS Lion apparently).
&gt; 
&gt; I landed a build fix (hopefully!) with http://trac.webkit.org/changeset/118681.
&gt; 
&gt; Please watch the bots :).
&gt; 
&gt; Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636266</commentid>
    <comment_count>16</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2012-05-29 11:28:52 -0700</bug_when>
    <thetext>This appears to have caused lots of crashes on Windows WK2: 
http://build.webkit.org/results/Windows%207%20Release%20(WebKit2%20Tests)/r118801%20(18680)/inspector/cookie-parser-crash-log.txt

PROBLEM_CLASSES: 

NULL_CLASS_PTR_DEREFERENCE
    Tid    [0x0]
    Frame  [0x00]

ONE_BIT
    Failure Bucketing

INVALID_POINTER_READ
    Tid    [0x1ba4]
    Frame  [0x00]: ntdll!ZwRaiseException

SHUTDOWN
    Tid    [0x1ba4]
    Frame  [0x00]: ntdll!ZwRaiseException
    Failure Bucketing


BUGCHECK_STR:  APPLICATION_FAULT_NULL_CLASS_PTR_DEREFERENCE_ONE_BIT_INVALID_POINTER_READ_SHUTDOWN

PRIMARY_PROBLEM_CLASS:  NULL_CLASS_PTR_DEREFERENCE_ONE_BIT_SHUTDOWN

DEFAULT_BUCKET_ID:  NULL_CLASS_PTR_DEREFERENCE_ONE_BIT_SHUTDOWN

STACK_TEXT:  
0041f4c4 6fab3ef5 00000001 0041f4f8 0041f530 WebKit!WebCore::TypeBuilder::Memory::MemoryBlock::Builder&lt;0&gt;::setName+0x3c [c:\cygwin\home\buildbot\slave\win-release\build\webkitbuild\release\obj\webcore\derivedsources\inspectortypebuilder.h @ 625]
0041f4ec 6fab6a53 0041f530 7ee942e8 7e0dd210 WebKit!WebCore::PageRuntimeAgent::notifyContextCreated+0xe5 [c:\cygwin\home\buildbot\slave\win-release\build\source\webcore\inspector\pageruntimeagent.cpp @ 161]
0041f524 6fdbe91a 0041f554 7da712d0 7d9f1440 WebKit!WebCore::PageRuntimeAgent::setReportExecutionContextCreation+0xf3 [c:\cygwin\home\buildbot\slave\win-release\build\source\webcore\inspector\pageruntimeagent.cpp @ 101]
0041f558 6fdd58a6 00000016 7e0e02e0 7e64b730 WebKit!WebCore::InspectorBackendDispatcherImpl::Runtime_setReportExecutionContextCreation+0x17a [c:\cygwin\home\buildbot\slave\win-release\build\webkitbuild\release\obj\webcore\derivedsources\inspectorbackenddispatcher.cpp @ 1305]
0041f5b8 6fa8f153 7e0dd180 7ee94810 7e64b708 WebKit!WebCore::InspectorBackendDispatcherImpl::dispatch+0x1206 [c:\cygwin\home\buildbot\slave\win-release\build\webkitbuild\release\obj\webcore\derivedsources\inspectorbackenddispatcher.cpp @ 4856]
0041f5d0 6fd6caab 7e64b708 6fded0bf 6fe40d80 WebKit!WebCore::InspectorBackendDispatchTask::onTimer+0x43 [c:\cygwin\home\buildbot\slave\win-release\build\source\webcore\inspector\inspectorfrontendclientlocal.cpp @ 92]
0041f5d8 6fded0bf 6fe40d80 00000000 dc06b8f9 WebKit!WebCore::Timer&lt;WebCore::CachedResourceLoader&gt;::fired+0xb [c:\cygwin\home\buildbot\slave\win-release\build\source\webcore\platform\timer.h @ 100]
0041f5f8 6fe40dcd 0041f62c 75e362fa 02c601b0 WebKit!WebCore::ThreadTimers::sharedTimerFiredInternal+0x7f [c:\cygwin\home\buildbot\slave\win-release\build\source\webcore\platform\threadtimers.cpp @ 118]
0041f600 75e362fa 02c601b0 0000c126 00000000 WebKit!WebCore::TimerWindowWndProc+0x4d [c:\cygwin\home\buildbot\slave\win-release\build\source\webcore\platform\win\sharedtimerwin.cpp @ 104]
0041f62c 75e36d3a 6fe40d80 02c601b0 0000c126 USER32!InternalCallWinProc+0x23
0041f6a4 75e377c4 00000000 6fe40d80 02c601b0 USER32!UserCallWinProcCheckWow+0x109
0041f704 75e3788a 6fe40d80 00000000 0041f748 USER32!DispatchMessageWorker+0x3bc
0041f714 6f7b3a01 0041f72c 0041f790 00000000 USER32!DispatchMessageW+0xf
0041f748 6f7511ce 76051222 7ee90488 7ee913c0 WebKit!WebCore::RunLoop::run+0x41 [c:\cygwin\home\buildbot\slave\win-release\build\source\webcore\platform\win\runloopwin.cpp @ 76]
0041f75c 6f7268d6 0041f790 00000000 7ee951f0 WebKit!WebKit::WebProcessMain+0xde [c:\cygwin\home\buildbot\slave\win-release\build\source\webkit2\webprocess\win\webprocessmainwin.cpp @ 84]
0041f77c 6f72697c 00000000 013c0000 004714ce WebKit!WebKitMain+0x116 [c:\cygwin\home\buildbot\slave\win-release\build\source\webkit2\webprocess\webkitmain.cpp @ 59]
0041f7a8 013c1098 013c0000 00000000 004714ce WebKit!WebKitMain+0x9c [c:\cygwin\home\buildbot\slave\win-release\build\source\webkit2\webprocess\webkitmain.cpp @ 187]
0041f9d8 013c1258 013c0000 00000000 004714ce WebKit2WebProcess!wWinMain+0x98 [c:\cygwin\home\buildbot\slave\win-release\build\source\webkit2\win\mainwin.cpp @ 67]
0041fa6c 7605339a 7efde000 0041fab8 77d89ef2 WebKit2WebProcess!__tmainCRTStartup+0x150 [f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c @ 589]
0041fa78 77d89ef2 7efde000 f97d0110 00000000 kernel32!BaseThreadInitThunk+0xe
0041fab8 77d89ec5 013c13c4 7efde000 00000000 ntdll!__RtlUserThreadStart+0x70
0041fad0 00000000 013c13c4 7efde000 00000000 ntdll!_RtlUserThreadStart+0x1b</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636364</commentid>
    <comment_count>17</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-05-29 13:05:18 -0700</bug_when>
    <thetext>Thank you very much. Looks very relevant, yet I don&apos;t see what could go wrong.
Looking into it.

(In reply to comment #16)
&gt; This appears to have caused lots of crashes on Windows WK2: 
&gt; http://build.webkit.org/results/Windows%207%20Release%20(WebKit2%20Tests)/r118801%20(18680)/inspector/cookie-parser-crash-log.txt
&gt; 
&gt; PROBLEM_CLASSES: 
&gt; 
&gt; NULL_CLASS_PTR_DEREFERENCE
&gt;     Tid    [0x0]
&gt;     Frame  [0x00]
&gt; 
&gt; ONE_BIT
&gt;     Failure Bucketing
&gt; 
&gt; INVALID_POINTER_READ
&gt;     Tid    [0x1ba4]
&gt;     Frame  [0x00]: ntdll!ZwRaiseException
&gt; 
&gt; SHUTDOWN
&gt;     Tid    [0x1ba4]
&gt;     Frame  [0x00]: ntdll!ZwRaiseException
&gt;     Failure Bucketing
&gt; 
&gt; 
&gt; BUGCHECK_STR:  APPLICATION_FAULT_NULL_CLASS_PTR_DEREFERENCE_ONE_BIT_INVALID_POINTER_READ_SHUTDOWN
&gt; 
&gt; PRIMARY_PROBLEM_CLASS:  NULL_CLASS_PTR_DEREFERENCE_ONE_BIT_SHUTDOWN
&gt; 
&gt; DEFAULT_BUCKET_ID:  NULL_CLASS_PTR_DEREFERENCE_ONE_BIT_SHUTDOWN
&gt; 
&gt; STACK_TEXT:  
&gt; 0041f4c4 6fab3ef5 00000001 0041f4f8 0041f530 WebKit!WebCore::TypeBuilder::Memory::MemoryBlock::Builder&lt;0&gt;::setName+0x3c [c:\cygwin\home\buildbot\slave\win-release\build\webkitbuild\release\obj\webcore\derivedsources\inspectortypebuilder.h @ 625]
&gt; 0041f4ec 6fab6a53 0041f530 7ee942e8 7e0dd210 WebKit!WebCore::PageRuntimeAgent::notifyContextCreated+0xe5 [c:\cygwin\home\buildbot\slave\win-release\build\source\webcore\inspector\pageruntimeagent.cpp @ 161]
&gt; 0041f524 6fdbe91a 0041f554 7da712d0 7d9f1440 WebKit!WebCore::PageRuntimeAgent::setReportExecutionContextCreation+0xf3 [c:\cygwin\home\buildbot\slave\win-release\build\source\webcore\inspector\pageruntimeagent.cpp @ 101]
&gt; 0041f558 6fdd58a6 00000016 7e0e02e0 7e64b730 WebKit!WebCore::InspectorBackendDispatcherImpl::Runtime_setReportExecutionContextCreation+0x17a [c:\cygwin\home\buildbot\slave\win-release\build\webkitbuild\release\obj\webcore\derivedsources\inspectorbackenddispatcher.cpp @ 1305]
&gt; 0041f5b8 6fa8f153 7e0dd180 7ee94810 7e64b708 WebKit!WebCore::InspectorBackendDispatcherImpl::dispatch+0x1206 [c:\cygwin\home\buildbot\slave\win-release\build\webkitbuild\release\obj\webcore\derivedsources\inspectorbackenddispatcher.cpp @ 4856]
&gt; 0041f5d0 6fd6caab 7e64b708 6fded0bf 6fe40d80 WebKit!WebCore::InspectorBackendDispatchTask::onTimer+0x43 [c:\cygwin\home\buildbot\slave\win-release\build\source\webcore\inspector\inspectorfrontendclientlocal.cpp @ 92]
&gt; 0041f5d8 6fded0bf 6fe40d80 00000000 dc06b8f9 WebKit!WebCore::Timer&lt;WebCore::CachedResourceLoader&gt;::fired+0xb [c:\cygwin\home\buildbot\slave\win-release\build\source\webcore\platform\timer.h @ 100]
&gt; 0041f5f8 6fe40dcd 0041f62c 75e362fa 02c601b0 WebKit!WebCore::ThreadTimers::sharedTimerFiredInternal+0x7f [c:\cygwin\home\buildbot\slave\win-release\build\source\webcore\platform\threadtimers.cpp @ 118]
&gt; 0041f600 75e362fa 02c601b0 0000c126 00000000 WebKit!WebCore::TimerWindowWndProc+0x4d [c:\cygwin\home\buildbot\slave\win-release\build\source\webcore\platform\win\sharedtimerwin.cpp @ 104]
&gt; 0041f62c 75e36d3a 6fe40d80 02c601b0 0000c126 USER32!InternalCallWinProc+0x23
&gt; 0041f6a4 75e377c4 00000000 6fe40d80 02c601b0 USER32!UserCallWinProcCheckWow+0x109
&gt; 0041f704 75e3788a 6fe40d80 00000000 0041f748 USER32!DispatchMessageWorker+0x3bc
&gt; 0041f714 6f7b3a01 0041f72c 0041f790 00000000 USER32!DispatchMessageW+0xf
&gt; 0041f748 6f7511ce 76051222 7ee90488 7ee913c0 WebKit!WebCore::RunLoop::run+0x41 [c:\cygwin\home\buildbot\slave\win-release\build\source\webcore\platform\win\runloopwin.cpp @ 76]
&gt; 0041f75c 6f7268d6 0041f790 00000000 7ee951f0 WebKit!WebKit::WebProcessMain+0xde [c:\cygwin\home\buildbot\slave\win-release\build\source\webkit2\webprocess\win\webprocessmainwin.cpp @ 84]
&gt; 0041f77c 6f72697c 00000000 013c0000 004714ce WebKit!WebKitMain+0x116 [c:\cygwin\home\buildbot\slave\win-release\build\source\webkit2\webprocess\webkitmain.cpp @ 59]
&gt; 0041f7a8 013c1098 013c0000 00000000 004714ce WebKit!WebKitMain+0x9c [c:\cygwin\home\buildbot\slave\win-release\build\source\webkit2\webprocess\webkitmain.cpp @ 187]
&gt; 0041f9d8 013c1258 013c0000 00000000 004714ce WebKit2WebProcess!wWinMain+0x98 [c:\cygwin\home\buildbot\slave\win-release\build\source\webkit2\win\mainwin.cpp @ 67]
&gt; 0041fa6c 7605339a 7efde000 0041fab8 77d89ef2 WebKit2WebProcess!__tmainCRTStartup+0x150 [f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c @ 589]
&gt; 0041fa78 77d89ef2 7efde000 f97d0110 00000000 kernel32!BaseThreadInitThunk+0xe
&gt; 0041fab8 77d89ec5 013c13c4 7efde000 00000000 ntdll!__RtlUserThreadStart+0x70
&gt; 0041fad0 00000000 013c13c4 7efde000 00000000 ntdll!_RtlUserThreadStart+0x1b

(In reply to comment #16)
&gt; This appears to have caused lots of crashes on Windows WK2: 
&gt; http://build.webkit.org/results/Windows%207%20Release%20(WebKit2%20Tests)/r118801%20(18680)/inspector/cookie-parser-crash-log.txt
&gt; 
&gt; PROBLEM_CLASSES: 
&gt; 
&gt; NULL_CLASS_PTR_DEREFERENCE
&gt;     Tid    [0x0]
&gt;     Frame  [0x00]
&gt; 
&gt; ONE_BIT
&gt;     Failure Bucketing
&gt; 
&gt; INVALID_POINTER_READ
&gt;     Tid    [0x1ba4]
&gt;     Frame  [0x00]: ntdll!ZwRaiseException
&gt; 
&gt; SHUTDOWN
&gt;     Tid    [0x1ba4]
&gt;     Frame  [0x00]: ntdll!ZwRaiseException
&gt;     Failure Bucketing
&gt; 
&gt; 
&gt; BUGCHECK_STR:  APPLICATION_FAULT_NULL_CLASS_PTR_DEREFERENCE_ONE_BIT_INVALID_POINTER_READ_SHUTDOWN
&gt; 
&gt; PRIMARY_PROBLEM_CLASS:  NULL_CLASS_PTR_DEREFERENCE_ONE_BIT_SHUTDOWN
&gt; 
&gt; DEFAULT_BUCKET_ID:  NULL_CLASS_PTR_DEREFERENCE_ONE_BIT_SHUTDOWN
&gt; 
&gt; STACK_TEXT:  
&gt; 0041f4c4 6fab3ef5 00000001 0041f4f8 0041f530 WebKit!WebCore::TypeBuilder::Memory::MemoryBlock::Builder&lt;0&gt;::setName+0x3c [c:\cygwin\home\buildbot\slave\win-release\build\webkitbuild\release\obj\webcore\derivedsources\inspectortypebuilder.h @ 625]
&gt; 0041f4ec 6fab6a53 0041f530 7ee942e8 7e0dd210 WebKit!WebCore::PageRuntimeAgent::notifyContextCreated+0xe5 [c:\cygwin\home\buildbot\slave\win-release\build\source\webcore\inspector\pageruntimeagent.cpp @ 161]
&gt; 0041f524 6fdbe91a 0041f554 7da712d0 7d9f1440 WebKit!WebCore::PageRuntimeAgent::setReportExecutionContextCreation+0xf3 [c:\cygwin\home\buildbot\slave\win-release\build\source\webcore\inspector\pageruntimeagent.cpp @ 101]
&gt; 0041f558 6fdd58a6 00000016 7e0e02e0 7e64b730 WebKit!WebCore::InspectorBackendDispatcherImpl::Runtime_setReportExecutionContextCreation+0x17a [c:\cygwin\home\buildbot\slave\win-release\build\webkitbuild\release\obj\webcore\derivedsources\inspectorbackenddispatcher.cpp @ 1305]
&gt; 0041f5b8 6fa8f153 7e0dd180 7ee94810 7e64b708 WebKit!WebCore::InspectorBackendDispatcherImpl::dispatch+0x1206 [c:\cygwin\home\buildbot\slave\win-release\build\webkitbuild\release\obj\webcore\derivedsources\inspectorbackenddispatcher.cpp @ 4856]
&gt; 0041f5d0 6fd6caab 7e64b708 6fded0bf 6fe40d80 WebKit!WebCore::InspectorBackendDispatchTask::onTimer+0x43 [c:\cygwin\home\buildbot\slave\win-release\build\source\webcore\inspector\inspectorfrontendclientlocal.cpp @ 92]
&gt; 0041f5d8 6fded0bf 6fe40d80 00000000 dc06b8f9 WebKit!WebCore::Timer&lt;WebCore::CachedResourceLoader&gt;::fired+0xb [c:\cygwin\home\buildbot\slave\win-release\build\source\webcore\platform\timer.h @ 100]
&gt; 0041f5f8 6fe40dcd 0041f62c 75e362fa 02c601b0 WebKit!WebCore::ThreadTimers::sharedTimerFiredInternal+0x7f [c:\cygwin\home\buildbot\slave\win-release\build\source\webcore\platform\threadtimers.cpp @ 118]
&gt; 0041f600 75e362fa 02c601b0 0000c126 00000000 WebKit!WebCore::TimerWindowWndProc+0x4d [c:\cygwin\home\buildbot\slave\win-release\build\source\webcore\platform\win\sharedtimerwin.cpp @ 104]
&gt; 0041f62c 75e36d3a 6fe40d80 02c601b0 0000c126 USER32!InternalCallWinProc+0x23
&gt; 0041f6a4 75e377c4 00000000 6fe40d80 02c601b0 USER32!UserCallWinProcCheckWow+0x109
&gt; 0041f704 75e3788a 6fe40d80 00000000 0041f748 USER32!DispatchMessageWorker+0x3bc
&gt; 0041f714 6f7b3a01 0041f72c 0041f790 00000000 USER32!DispatchMessageW+0xf
&gt; 0041f748 6f7511ce 76051222 7ee90488 7ee913c0 WebKit!WebCore::RunLoop::run+0x41 [c:\cygwin\home\buildbot\slave\win-release\build\source\webcore\platform\win\runloopwin.cpp @ 76]
&gt; 0041f75c 6f7268d6 0041f790 00000000 7ee951f0 WebKit!WebKit::WebProcessMain+0xde [c:\cygwin\home\buildbot\slave\win-release\build\source\webkit2\webprocess\win\webprocessmainwin.cpp @ 84]
&gt; 0041f77c 6f72697c 00000000 013c0000 004714ce WebKit!WebKitMain+0x116 [c:\cygwin\home\buildbot\slave\win-release\build\source\webkit2\webprocess\webkitmain.cpp @ 59]
&gt; 0041f7a8 013c1098 013c0000 00000000 004714ce WebKit!WebKitMain+0x9c [c:\cygwin\home\buildbot\slave\win-release\build\source\webkit2\webprocess\webkitmain.cpp @ 187]
&gt; 0041f9d8 013c1258 013c0000 00000000 004714ce WebKit2WebProcess!wWinMain+0x98 [c:\cygwin\home\buildbot\slave\win-release\build\source\webkit2\win\mainwin.cpp @ 67]
&gt; 0041fa6c 7605339a 7efde000 0041fab8 77d89ef2 WebKit2WebProcess!__tmainCRTStartup+0x150 [f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c @ 589]
&gt; 0041fa78 77d89ef2 7efde000 f97d0110 00000000 kernel32!BaseThreadInitThunk+0xe
&gt; 0041fab8 77d89ec5 013c13c4 7efde000 00000000 ntdll!__RtlUserThreadStart+0x70
&gt; 0041fad0 00000000 013c13c4 7efde000 00000000 ntdll!_RtlUserThreadStart+0x1b</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636403</commentid>
    <comment_count>18</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-05-29 13:50:30 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; Thank you very much. Looks very relevant, yet I don&apos;t see what could go wrong.
&gt; Looking into it.

What bugs me here is that stacktraces in all crashes look quite correct, but the top frame:

1. WebKit!WebCore::TypeBuilder::Memory::MemoryBlock::Builder&lt;0&gt;::setName+0x3c [c:\cygwin\home\buildbot\slave\win-release\build\webkitbuild\release\obj\webcore\derivedsources\inspectortypebuilder.h @ 625]

2. WebKit!WebCore::PageRuntimeAgent::notifyContextCreated+0xe5 [c:\cygwin\home\buildbot\slave\win-release\build\source\webcore\inspector\pageruntimeagent.cpp @ 161]

...

While &quot;MemoryBlock::Builder&lt;0&gt;::setName&quot; method exists and line #625 is absolutely meaningful, PageRuntimeAgent.cpp has nothing to do with this method at all. The file never mentions MemoryBlock type. It does call &quot;setName&quot; method of completely different type (Runtime::ExecutionContextDescription::Builder). Moreover, MemoryBlock::Builder&lt;0&gt; is a template instantiation and this instantiation could only occur from the different file – InspectorMemoryAgent.cpp.

As crazy as it sounds, right now it looks like a corrupted stacktrace or a linker problem, not even compiler (weird).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636423</commentid>
    <comment_count>19</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-05-29 14:15:03 -0700</bug_when>
    <thetext>I looked further and found more: in various builds the crash is reported at different methods (but all crashes within one build point to the method).

The method is always called &quot;setName&quot; and is from types called Builder&lt;int i&gt;. Line is always &quot;inspectortypebuilder.h @ 625&quot;, which corresponds to Memory::MemoryBlock::Builder (coincidentally a first method &quot;setName&quot; in InspectorTypeBuilder.h source file).

Here&apos;s a table of method changes with build:
r118742   Database::Database::Builder&lt;3&gt;::setName
r118747   Database::Database::Builder&lt;3&gt;::setName
r118801   Memory::MemoryBlock::Builder&lt;0&gt;::setName
r118804   Database::Database::Builder&lt;3&gt;::setName
r118806   Database::Database::Builder&lt;3&gt;::setName
r118809   CSS::CSSProperty::Builder&lt;0&gt;::setName

This looks as if each the method changes chaotically with any change to build offsets.

Still it doesn&apos;t explain why it crashes.

Here&apos;s a snippet from the call site:

    m_frontend-&gt;isolatedContextCreated(ExecutionContextDescription::create()
        .setId(static_cast&lt;int&gt;(executionContextId))  &lt;&lt;&lt;***** a changed line
        .setIsPageContext(isPageContext)
        .setName(name)
        .setFrameId(frameId)
        .release());</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637223</commentid>
    <comment_count>20</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-05-30 07:59:06 -0700</bug_when>
    <thetext>As investigation shows, it looks very much like compiler bug. Incorrect method &quot;create&quot; is called too.

All inspector .cpp sources are concatenated in one and compiled together. This probably makes compiler go crazy from the number of templates.


Further investigation: whether debug build gets the same bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637248</commentid>
    <comment_count>21</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-05-30 08:17:05 -0700</bug_when>
    <thetext>Should be fixed in https://bugs.webkit.org/show_bug.cgi?id=87857</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638095</commentid>
    <comment_count>22</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-05-31 01:16:02 -0700</bug_when>
    <thetext>Reopening the bug as the feature was disabled in http://trac.webkit.org/changeset/118925 due to layout test crashes on Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051605</commentid>
    <comment_count>23</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-12-01 14:41:02 -0800</bug_when>
    <thetext>Needs to be re-evaluated in light of the new protocol code generator and upcoming changes in C++-side protocol type safety.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051606</commentid>
    <comment_count>24</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-12-01 14:41:29 -0800</bug_when>
    <thetext>&lt;rdar://problem/19107094&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1217013</commentid>
    <comment_count>25</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-08-03 11:05:35 -0700</bug_when>
    <thetext>I don&apos;t think we should fix this. I am not aware of any bugs where floats have been truncated or converted to ints in our backend.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143419</attachid>
            <date>2012-05-22 17:52:12 -0700</date>
            <delta_ts>2012-05-27 17:34:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87183-20120523045210.patch</filename>
            <type>text/plain</type>
            <size>5078</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3ODI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmFlZGMzNGY2ODY3NDlk
YWRlMDI5YTAzZmIzMjUxOWRjNmIxOGEwOS4uMzNlYzVjZjBjNjZlZmQzMmQ1MzU2M2U5Nzc5NzBi
MDgwZmU0ZTgzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTA1LTIyICBQZXRl
ciBSeWJpbiAgPHBldGVyLnJ5YmluQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBDb2RlR2VuZXJhdG9ySW5zcGVjdG9yLnB5OiBwcm90ZWN0IHR5cGVkIEFQSSBmcm9tIEMrKyBp
bXBsaWNpdCBmbG9hdCB0byBpbnQgY2FzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODcxODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBbiBpbnRlcm1lZGlhdGUgQysrIGNsYXNzIGlzIGludHJvZHVjZWQg
dGhhdCB1c2VzIEMrKyB0ZW1wbGF0ZSB0ZWNobmlxdWUgdG8gY29udHJvbCBhY3R1YWwgdHlwZQor
ICAgICAgICBvZiBpdHMgY29uc3RydWN0b3IgYXJndW1lbnQuCisgICAgICAgIEFsbCBpbnB1dCBw
YXJhbWV0ZXJzIG9mIHR5cGUgImludCIgbm93IGhhdmUgdHlwZSBFeGFjdGx5SW50LiAKKworICAg
ICAgICAqIGluc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnB5OgorICAgICAgICAoVHlw
ZU1vZGVsLlJlZlB0ckJhc2VkKToKKyAgICAgICAgKFR5cGVNb2RlbC5FbnVtKToKKyAgICAgICAg
KFR5cGVNb2RlbC5WYWx1ZVR5cGUpOgorICAgICAgICAoVHlwZU1vZGVsLkV4YWN0bHlJbnQpOgor
ICAgICAgICAoVHlwZU1vZGVsLkV4YWN0bHlJbnQuX19pbml0X18pOgorICAgICAgICAoVHlwZU1v
ZGVsLkV4YWN0bHlJbnQuZ2V0X2lucHV0X3BhcmFtX3R5cGVfdGV4dCk6CisgICAgICAgIChUeXBl
TW9kZWwuaW5pdF9jbGFzcyk6CisgICAgICAgIChFeGFjdGx5SW50KToKKyAgICAgICAgKHRoYXQp
OgorICAgICAgICAoRXhhY3RseUludEhlbHBlcik6CisKIDIwMTItMDUtMjEgIEpvc2h1YSBCZWxs
ICA8anNiZWxsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbmRleGVkREI6IFN0b3JlIGtleSBw
YXRocyBpbiBJREJLZXlQYXRoIHR5cGUgaW5zdGVhZCBvZiBTdHJpbmcKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnB5IGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkKaW5kZXggZGRhZTdh
MjkwYWVjYzllM2Y5N2UwMTZmMWYwYjBjNGYxMDVlM2U4OS4uOTRhYjlhNzcxZmU3MGM1M2RjNjcx
NjBjZDRjMzc4OGJiZWM3NGQ1OCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkKQEAgLTYyMiw3ICs2MjIsNyBAQCBjbGFzcyBDb21t
YW5kUmV0dXJuUGFzc01vZGVsOgogCiAKIGNsYXNzIFR5cGVNb2RlbDoKLSAgICBjbGFzcyBSZWZQ
dHJCYXNlZDoKKyAgICBjbGFzcyBSZWZQdHJCYXNlZChvYmplY3QpOgogICAgICAgICBkZWYgX19p
bml0X18oc2VsZiwgY2xhc3NfbmFtZSk6CiAgICAgICAgICAgICBzZWxmLmNsYXNzX25hbWUgPSBj
bGFzc19uYW1lCiAgICAgICAgICAgICBzZWxmLm9wdGlvbmFsID0gRmFsc2UKQEAgLTY0Niw3ICs2
NDYsNyBAQCBjbGFzcyBUeXBlTW9kZWw6CiAgICAgICAgIGRlZiBnZXRfZXZlbnRfc2V0dGVyX2V4
cHJlc3Npb25fcGF0dGVybigpOgogICAgICAgICAgICAgcmV0dXJuICIlcyIKIAotICAgIGNsYXNz
IEVudW06CisgICAgY2xhc3MgRW51bShvYmplY3QpOgogICAgICAgICBkZWYgX19pbml0X18oc2Vs
ZiwgYmFzZV90eXBlX25hbWUpOgogICAgICAgICAgICAgc2VsZi50eXBlX25hbWUgPSBiYXNlX3R5
cGVfbmFtZSArICI6OkVudW0iCiAKQEAgLTY3OSw3ICs2NzksNyBAQCBjbGFzcyBUeXBlTW9kZWw6
CiAgICAgICAgIGRlZiBnZXRfZXZlbnRfc2V0dGVyX2V4cHJlc3Npb25fcGF0dGVybigpOgogICAg
ICAgICAgICAgcmV0dXJuICIlcyIKIAotICAgIGNsYXNzIFZhbHVlVHlwZToKKyAgICBjbGFzcyBW
YWx1ZVR5cGUob2JqZWN0KToKICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHR5cGVfbmFtZSwg
aXNfaGVhdnkpOgogICAgICAgICAgICAgc2VsZi50eXBlX25hbWUgPSB0eXBlX25hbWUKICAgICAg
ICAgICAgIHNlbGYuaXNfaGVhdnkgPSBpc19oZWF2eQpAQCAtNjk2LDYgKzY5Niw5IEBAIGNsYXNz
IFR5cGVNb2RlbDoKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgcmV0dXJuIHNl
bGYudHlwZV9uYW1lCiAKKyAgICAgICAgZGVmIGdldF9vcHRfb3V0cHV0X3R5cGVfKHNlbGYpOgor
ICAgICAgICAgICAgcmV0dXJuIHNlbGYudHlwZV9uYW1lCisKICAgICAgICAgQHN0YXRpY21ldGhv
ZAogICAgICAgICBkZWYgZ2V0X2V2ZW50X3NldHRlcl9leHByZXNzaW9uX3BhdHRlcm4oKToKICAg
ICAgICAgICAgIHJldHVybiAiJXMiCkBAIC03MDgsNyArNzExLDcgQEAgY2xhc3MgVHlwZU1vZGVs
OgogICAgICAgICAgICAgICAgIHJldHVybiBzZWxmCiAKICAgICAgICAgICAgIGRlZiBnZXRfY29t
bWFuZF9yZXR1cm5fcGFzc19tb2RlbChzZWxmKToKLSAgICAgICAgICAgICAgICByZXR1cm4gQ29t
bWFuZFJldHVyblBhc3NNb2RlbC5PcHRPdXRwdXQoc2VsZi5iYXNlLnR5cGVfbmFtZSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gQ29tbWFuZFJldHVyblBhc3NNb2RlbC5PcHRPdXRwdXQoc2VsZi5i
YXNlLmdldF9vcHRfb3V0cHV0X3R5cGVfKCkpCiAKICAgICAgICAgICAgIGRlZiBnZXRfaW5wdXRf
cGFyYW1fdHlwZV90ZXh0KHNlbGYpOgogICAgICAgICAgICAgICAgIHJldHVybiAiY29uc3QgJXMq
IGNvbnN0IiAlIHNlbGYuYmFzZS50eXBlX25hbWUKQEAgLTcxNywxMiArNzIwLDIyIEBAIGNsYXNz
IFR5cGVNb2RlbDoKICAgICAgICAgICAgIGRlZiBnZXRfZXZlbnRfc2V0dGVyX2V4cHJlc3Npb25f
cGF0dGVybigpOgogICAgICAgICAgICAgICAgIHJldHVybiAiKiVzIgogCisgICAgY2xhc3MgRXhh
Y3RseUludChWYWx1ZVR5cGUpOgorICAgICAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAg
ICAgICBUeXBlTW9kZWwuVmFsdWVUeXBlLl9faW5pdF9fKHNlbGYsICJpbnQiLCBGYWxzZSkKKwor
ICAgICAgICBkZWYgZ2V0X2lucHV0X3BhcmFtX3R5cGVfdGV4dChzZWxmKToKKyAgICAgICAgICAg
IHJldHVybiAiVHlwZUJ1aWxkZXI6OkV4YWN0bHlJbnQiCisKKyAgICAgICAgZGVmIGdldF9vcHRf
b3V0cHV0X3R5cGVfKHNlbGYpOgorICAgICAgICAgICAgcmV0dXJuICJUeXBlQnVpbGRlcjo6RXhh
Y3RseUludCIKKwogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBpbml0X2NsYXNzKGNscyk6CiAg
ICAgICAgIGNscy5Cb29sID0gY2xzLlZhbHVlVHlwZSgiYm9vbCIsIEZhbHNlKQotICAgICAgICBj
bHMuSW50ID0gY2xzLlZhbHVlVHlwZSgiaW50IiwgRmFsc2UpCisgICAgICAgIGNscy5JbnQgPSBj
bHMuRXhhY3RseUludCgpCiAgICAgICAgIGNscy5OdW1iZXIgPSBjbHMuVmFsdWVUeXBlKCJkb3Vi
bGUiLCBGYWxzZSkKLSAgICAgICAgY2xzLlN0cmluZyA9IGNscy5WYWx1ZVR5cGUoIlN0cmluZyIs
IFRydWUpCisgICAgICAgIGNscy5TdHJpbmcgPSBjbHMuVmFsdWVUeXBlKCJTdHJpbmciLCBUcnVl
LCkKICAgICAgICAgY2xzLk9iamVjdCA9IGNscy5SZWZQdHJCYXNlZCgiSW5zcGVjdG9yT2JqZWN0
IikKICAgICAgICAgY2xzLkFycmF5ID0gY2xzLlJlZlB0ckJhc2VkKCJJbnNwZWN0b3JBcnJheSIp
CiAgICAgICAgIGNscy5BbnkgPSBjbHMuUmVmUHRyQmFzZWQoIkluc3BlY3RvclZhbHVlIikKQEAg
LTIyMjQsNiArMjIzNywzNCBAQCBwcml2YXRlOgogfTsKIAogCisvLyBBIHNtYWxsIHRyYW5jaWVu
dCB3cmFwcGVyIGFyb3VuZCBpbnQgdHlwZSwgdGhhdCBjYW4gYmUgdXNlZCBhcyBhIGZ1bmNpdG9u
IHBhcmFtZXRlciB0eXBlCisvLyBjbGV2ZXJseSBkaWFsbG93aW5nIEMrKyBpbXBsaWNpdCBjYXN0
cyBmcm9tIGZsb2F0IG9yIGRvdWJsZS4KK2NsYXNzIEV4YWN0bHlJbnQgeworcHVibGljOgorICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgRXhhY3RseUludChUIHQpOworCisgICAgRXhhY3Rs
eUludCgpIHt9CisKKyAgICBvcGVyYXRvciBpbnQoKSB7IHJldHVybiBtX3ZhbHVlOyB9Citwcml2
YXRlOgorICAgIGludCBtX3ZhbHVlOworfTsKKworLy8gQSBoZWxwZXIgdGVtcGxhdGUgY2xhc3Mg
dGhhdCBoYXMgJ2Nhc3QnIG1ldGhvZCBmb3IgYWxsIHBhcmFtZXRlciB0eXBlcyBleGNlcHQgZmxv
YXQgYW5kIGRvdWJsZS4KK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitjbGFzcyBFeGFjdGx5SW50SGVs
cGVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgaW5saW5lIGludCBjYXN0KFQgdCkgeyByZXR1cm4g
dDsgfQorfTsKKwordGVtcGxhdGU8PiBjbGFzcyBFeGFjdGx5SW50SGVscGVyPGZsb2F0PiB7IC8q
IG5vIGNhc3QgbWV0aG9kIGZvciBmbG9hdCAqLyB9OwordGVtcGxhdGU8PiBjbGFzcyBFeGFjdGx5
SW50SGVscGVyPGRvdWJsZT4geyAvKiBubyBjYXN0IG1ldGhvZCBmb3IgZG91YmxlICovIH07CisK
K3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitpbmxpbmUgRXhhY3RseUludDo6RXhhY3RseUludChUIHQp
IDogbV92YWx1ZShFeGFjdGx5SW50SGVscGVyPFQ+OjpjYXN0KHQpKSB7fQorCisKIC8vIFRoaXMg
Y2xhc3MgcHJvdmlkZXMgIlRyYWl0cyIgdHlwZSBmb3IgdGhlIGlucHV0IHR5cGUgVC4gSXQgaXMg
cHJvZ3JhbW1lZCB1c2luZyBDKysgdGVtcGxhdGUgc3BlY2lhbGl6YXRpb24KIC8vIHRlY2huaXF1
ZS4gQnkgZGVmYXVsdCBpdCBzaW1wbHkgdGFrZXMgIkl0ZW1UcmFpdHMiIHR5cGUgZnJvbSBULCBi
dXQgaXQgZG9lc24ndCB3b3JrIHdpdGggdGhlIGJhc2UgdHlwZXMuCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144255</attachid>
            <date>2012-05-27 17:35:08 -0700</date>
            <delta_ts>2012-05-28 01:03:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87183-20120528043506.patch</filename>
            <type>text/plain</type>
            <size>13438</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4NTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmJjZDVlMjM3ZTg5Yjk5
NmU1YWY0NTNiMjQyYWRiZThlNzZhMTE0Zi4uYmViNzkzNDBlOTk3MTYxYmRkMDQ5MjgwM2FlNzIx
MWFkM2I2MWZjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEyLTA1LTI3ICBQZXRl
ciBSeWJpbiAgPHBldGVyLnJ5YmluQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBDb2RlR2VuZXJhdG9ySW5zcGVjdG9yLnB5OiBwcm90ZWN0IHR5cGVkIEFQSSBmcm9tIEMrKyBp
bXBsaWNpdCBmbG9hdCB0byBpbnQgY2FzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODcxODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBbiBpbnRlcm1lZGlhdGUgQysrIGNsYXNzIGlzIGludHJvZHVjZWQg
dGhhdCB1c2VzIEMrKyB0ZW1wbGF0ZSB0ZWNobmlxdWUgdG8gY29udHJvbCBhY3R1YWwgdHlwZQor
ICAgICAgICBvZiBpdHMgY29uc3RydWN0b3IgYXJndW1lbnQuCisgICAgICAgIEFsbCBpbnB1dCBw
YXJhbWV0ZXJzIG9mIHR5cGUgImludCIgbm93IGhhdmUgdHlwZSBFeGFjdGx5SW50LiAKKyAgICAg
ICAgQWxsIHVzYWdlIHNpdGVzIGFyZSBmaXhlZCBhY2NvcmRpbmdseS4KKworICAgICAgICAqIGlu
c3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnB5OgorICAgICAgICAoVHlwZU1vZGVsLlJl
ZlB0ckJhc2VkKToKKyAgICAgICAgKFR5cGVNb2RlbC5FbnVtKToKKyAgICAgICAgKFR5cGVNb2Rl
bC5WYWx1ZVR5cGUpOgorICAgICAgICAoVHlwZU1vZGVsLlZhbHVlVHlwZS5nZXRfb3B0X291dHB1
dF90eXBlXyk6CisgICAgICAgIChUeXBlTW9kZWwuVmFsdWVUeXBlLlZhbHVlT3B0aW9uYWwuZ2V0
X2NvbW1hbmRfcmV0dXJuX3Bhc3NfbW9kZWwpOgorICAgICAgICAoVHlwZU1vZGVsLkV4YWN0bHlJ
bnQpOgorICAgICAgICAoVHlwZU1vZGVsLkV4YWN0bHlJbnQuX19pbml0X18pOgorICAgICAgICAo
VHlwZU1vZGVsLkV4YWN0bHlJbnQuZ2V0X2lucHV0X3BhcmFtX3R5cGVfdGV4dCk6CisgICAgICAg
IChUeXBlTW9kZWwuRXhhY3RseUludC5nZXRfb3B0X291dHB1dF90eXBlXyk6CisgICAgICAgIChU
eXBlTW9kZWwuaW5pdF9jbGFzcyk6CisgICAgICAgIChFeGFjdGx5SW50KToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
QWdlbnQ6OmVuYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBZ2VudDo6ZGlkQ3Jl
YXRlV29ya2VyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50OjpkaWREZXN0cm95
V29ya2VyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50OjpldmFsdWF0ZUZvclRl
c3RJbkZyb250ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25D
YWNoZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2Fj
aGVBZ2VudDo6dXBkYXRlQXBwbGljYXRpb25DYWNoZVN0YXR1cyk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmdldEZyYW1lc1dpdGhNYW5pZmVzdHMp
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6YnVpbGRPYmplY3RGb3JOb2RlKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
anNIZWFwSW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JNZW1vcnlBZ2VudDo6Z2V0
UHJvY2Vzc01lbW9yeURpc3RyaWJ1dGlvbik6CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VSdW50
aW1lQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZVJ1bnRpbWVBZ2VudDo6bm90aWZ5
Q29udGV4dENyZWF0ZWQpOgorCiAyMDEyLTA1LTI1ICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxv
dkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQ2xlYW4gdXAgSW5zcGVj
dG9yLmpzb24gYWZ0ZXIgcjExODM2NwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
Q29kZUdlbmVyYXRvckluc3BlY3Rvci5weQppbmRleCBkZGFlN2EyOTBhZWNjOWUzZjk3ZTAxNmYx
ZjBiMGM0ZjEwNWUzZTg5Li5hYWViOWFhYWYwZGJiNTk1ODY5NjA0MTNjMDM2YzNkZTc3MGQyYmE4
IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3Bl
Y3Rvci5weQorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3Bl
Y3Rvci5weQpAQCAtNjIyLDcgKzYyMiw3IEBAIGNsYXNzIENvbW1hbmRSZXR1cm5QYXNzTW9kZWw6
CiAKIAogY2xhc3MgVHlwZU1vZGVsOgotICAgIGNsYXNzIFJlZlB0ckJhc2VkOgorICAgIGNsYXNz
IFJlZlB0ckJhc2VkKG9iamVjdCk6CiAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjbGFzc19u
YW1lKToKICAgICAgICAgICAgIHNlbGYuY2xhc3NfbmFtZSA9IGNsYXNzX25hbWUKICAgICAgICAg
ICAgIHNlbGYub3B0aW9uYWwgPSBGYWxzZQpAQCAtNjQ2LDcgKzY0Niw3IEBAIGNsYXNzIFR5cGVN
b2RlbDoKICAgICAgICAgZGVmIGdldF9ldmVudF9zZXR0ZXJfZXhwcmVzc2lvbl9wYXR0ZXJuKCk6
CiAgICAgICAgICAgICByZXR1cm4gIiVzIgogCi0gICAgY2xhc3MgRW51bToKKyAgICBjbGFzcyBF
bnVtKG9iamVjdCk6CiAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBiYXNlX3R5cGVfbmFtZSk6
CiAgICAgICAgICAgICBzZWxmLnR5cGVfbmFtZSA9IGJhc2VfdHlwZV9uYW1lICsgIjo6RW51bSIK
IApAQCAtNjc5LDcgKzY3OSw3IEBAIGNsYXNzIFR5cGVNb2RlbDoKICAgICAgICAgZGVmIGdldF9l
dmVudF9zZXR0ZXJfZXhwcmVzc2lvbl9wYXR0ZXJuKCk6CiAgICAgICAgICAgICByZXR1cm4gIiVz
IgogCi0gICAgY2xhc3MgVmFsdWVUeXBlOgorICAgIGNsYXNzIFZhbHVlVHlwZShvYmplY3QpOgog
ICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgdHlwZV9uYW1lLCBpc19oZWF2eSk6CiAgICAgICAg
ICAgICBzZWxmLnR5cGVfbmFtZSA9IHR5cGVfbmFtZQogICAgICAgICAgICAgc2VsZi5pc19oZWF2
eSA9IGlzX2hlYXZ5CkBAIC02OTYsNiArNjk2LDkgQEAgY2xhc3MgVHlwZU1vZGVsOgogICAgICAg
ICAgICAgZWxzZToKICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi50eXBlX25hbWUKIAorICAg
ICAgICBkZWYgZ2V0X29wdF9vdXRwdXRfdHlwZV8oc2VsZik6CisgICAgICAgICAgICByZXR1cm4g
c2VsZi50eXBlX25hbWUKKwogICAgICAgICBAc3RhdGljbWV0aG9kCiAgICAgICAgIGRlZiBnZXRf
ZXZlbnRfc2V0dGVyX2V4cHJlc3Npb25fcGF0dGVybigpOgogICAgICAgICAgICAgcmV0dXJuICIl
cyIKQEAgLTcwOCw3ICs3MTEsNyBAQCBjbGFzcyBUeXBlTW9kZWw6CiAgICAgICAgICAgICAgICAg
cmV0dXJuIHNlbGYKIAogICAgICAgICAgICAgZGVmIGdldF9jb21tYW5kX3JldHVybl9wYXNzX21v
ZGVsKHNlbGYpOgotICAgICAgICAgICAgICAgIHJldHVybiBDb21tYW5kUmV0dXJuUGFzc01vZGVs
Lk9wdE91dHB1dChzZWxmLmJhc2UudHlwZV9uYW1lKQorICAgICAgICAgICAgICAgIHJldHVybiBD
b21tYW5kUmV0dXJuUGFzc01vZGVsLk9wdE91dHB1dChzZWxmLmJhc2UuZ2V0X29wdF9vdXRwdXRf
dHlwZV8oKSkKIAogICAgICAgICAgICAgZGVmIGdldF9pbnB1dF9wYXJhbV90eXBlX3RleHQoc2Vs
Zik6CiAgICAgICAgICAgICAgICAgcmV0dXJuICJjb25zdCAlcyogY29uc3QiICUgc2VsZi5iYXNl
LnR5cGVfbmFtZQpAQCAtNzE3LDEyICs3MjAsMjIgQEAgY2xhc3MgVHlwZU1vZGVsOgogICAgICAg
ICAgICAgZGVmIGdldF9ldmVudF9zZXR0ZXJfZXhwcmVzc2lvbl9wYXR0ZXJuKCk6CiAgICAgICAg
ICAgICAgICAgcmV0dXJuICIqJXMiCiAKKyAgICBjbGFzcyBFeGFjdGx5SW50KFZhbHVlVHlwZSk6
CisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgICAgIFR5cGVNb2RlbC5WYWx1
ZVR5cGUuX19pbml0X18oc2VsZiwgImludCIsIEZhbHNlKQorCisgICAgICAgIGRlZiBnZXRfaW5w
dXRfcGFyYW1fdHlwZV90ZXh0KHNlbGYpOgorICAgICAgICAgICAgcmV0dXJuICJUeXBlQnVpbGRl
cjo6RXhhY3RseUludCIKKworICAgICAgICBkZWYgZ2V0X29wdF9vdXRwdXRfdHlwZV8oc2VsZik6
CisgICAgICAgICAgICByZXR1cm4gIlR5cGVCdWlsZGVyOjpFeGFjdGx5SW50IgorCiAgICAgQGNs
YXNzbWV0aG9kCiAgICAgZGVmIGluaXRfY2xhc3MoY2xzKToKICAgICAgICAgY2xzLkJvb2wgPSBj
bHMuVmFsdWVUeXBlKCJib29sIiwgRmFsc2UpCi0gICAgICAgIGNscy5JbnQgPSBjbHMuVmFsdWVU
eXBlKCJpbnQiLCBGYWxzZSkKKyAgICAgICAgY2xzLkludCA9IGNscy5FeGFjdGx5SW50KCkKICAg
ICAgICAgY2xzLk51bWJlciA9IGNscy5WYWx1ZVR5cGUoImRvdWJsZSIsIEZhbHNlKQotICAgICAg
ICBjbHMuU3RyaW5nID0gY2xzLlZhbHVlVHlwZSgiU3RyaW5nIiwgVHJ1ZSkKKyAgICAgICAgY2xz
LlN0cmluZyA9IGNscy5WYWx1ZVR5cGUoIlN0cmluZyIsIFRydWUsKQogICAgICAgICBjbHMuT2Jq
ZWN0ID0gY2xzLlJlZlB0ckJhc2VkKCJJbnNwZWN0b3JPYmplY3QiKQogICAgICAgICBjbHMuQXJy
YXkgPSBjbHMuUmVmUHRyQmFzZWQoIkluc3BlY3RvckFycmF5IikKICAgICAgICAgY2xzLkFueSA9
IGNscy5SZWZQdHJCYXNlZCgiSW5zcGVjdG9yVmFsdWUiKQpAQCAtMjIyNCw2ICsyMjM3LDMwIEBA
IHByaXZhdGU6CiB9OwogCiAKKy8vIEEgc21hbGwgdHJhbnNpZW50IHdyYXBwZXIgYXJvdW5kIGlu
dCB0eXBlLCB0aGF0IGNhbiBiZSB1c2VkIGFzIGEgZnVuY2l0b24gcGFyYW1ldGVyIHR5cGUKKy8v
IGNsZXZlcmx5IGRpc2FsbG93aW5nIEMrKyBpbXBsaWNpdCBjYXN0cyBmcm9tIGZsb2F0IG9yIGRv
dWJsZS4KK2NsYXNzIEV4YWN0bHlJbnQgeworcHVibGljOgorICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+CisgICAgRXhhY3RseUludChUIHQpIDogbV92YWx1ZShjYXN0X3RvX2ludDxUPih0KSkge30K
KworICAgIEV4YWN0bHlJbnQoKSB7fQorCisgICAgb3BlcmF0b3IgaW50KCkgeyByZXR1cm4gbV92
YWx1ZTsgfQorcHJpdmF0ZToKKyAgICBpbnQgbV92YWx1ZTsKKworICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+CisgICAgc3RhdGljIGludCBjYXN0X3RvX2ludChUIHQpIHsgcmV0dXJuIFQ6OmRlZmF1
bHRfY2FzZV9jYXN0X2lzX25vdF9zdXBwb3J0ZWQoKTsgfQorfTsKKwordGVtcGxhdGU8PgoraW5s
aW5lIGludCBFeGFjdGx5SW50OjpjYXN0X3RvX2ludDxpbnQ+KGludCBpKSB7IHJldHVybiBpOyB9
CisKK3RlbXBsYXRlPD4KK2lubGluZSBpbnQgRXhhY3RseUludDo6Y2FzdF90b19pbnQ8dW5zaWdu
ZWQgaW50Pih1bnNpZ25lZCBpbnQgaSkgeyByZXR1cm4gaTsgfQorCisKIC8vIFRoaXMgY2xhc3Mg
cHJvdmlkZXMgIlRyYWl0cyIgdHlwZSBmb3IgdGhlIGlucHV0IHR5cGUgVC4gSXQgaXMgcHJvZ3Jh
bW1lZCB1c2luZyBDKysgdGVtcGxhdGUgc3BlY2lhbGl6YXRpb24KIC8vIHRlY2huaXF1ZS4gQnkg
ZGVmYXVsdCBpdCBzaW1wbHkgdGFrZXMgIkl0ZW1UcmFpdHMiIHR5cGUgZnJvbSBULCBidXQgaXQg
ZG9lc24ndCB3b3JrIHdpdGggdGhlIGJhc2UgdHlwZXMuCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5jcHAKaW5kZXggMzVlNTMx
NDM5OGVhYWY4N2Q4NjhkOTJhZWE5MWZhZDZlZmE5ZDI5ZS4uYjNhYTNiY2Y2OGZkMjMzZDUxNzdl
N2ZjMmU2ZmE0Nzg3YWEzMTUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQWdlbnQuY3BwCkBAIC0xMjYsNyArMTI2LDcgQEAgdm9pZCBJbnNwZWN0b3JBZ2VudDo6ZW5h
YmxlKEVycm9yU3RyaW5nKikKICAgICBXb3JrZXJzTWFwOjppdGVyYXRvciB3b3JrZXJzRW5kID0g
bV93b3JrZXJzLmVuZCgpOwogICAgIGZvciAoV29ya2Vyc01hcDo6aXRlcmF0b3IgaXQgPSBtX3dv
cmtlcnMuYmVnaW4oKTsgaXQgIT0gd29ya2Vyc0VuZDsgKytpdCkgewogICAgICAgICBJbnNwZWN0
b3JXb3JrZXJSZXNvdXJjZSogd29ya2VyID0gaXQtPnNlY29uZC5nZXQoKTsKLSAgICAgICAgbV9m
cm9udGVuZC0+aW5zcGVjdG9yKCktPmRpZENyZWF0ZVdvcmtlcih3b3JrZXItPmlkKCksIHdvcmtl
ci0+dXJsKCksIHdvcmtlci0+aXNTaGFyZWRXb3JrZXIoKSk7CisgICAgICAgIG1fZnJvbnRlbmQt
Pmluc3BlY3RvcigpLT5kaWRDcmVhdGVXb3JrZXIoc3RhdGljX2Nhc3Q8aW50Pih3b3JrZXItPmlk
KCkpLCB3b3JrZXItPnVybCgpLCB3b3JrZXItPmlzU2hhcmVkV29ya2VyKCkpOwogICAgIH0KICNl
bmRpZgogCkBAIC0xMzQsNyArMTM0LDcgQEAgdm9pZCBJbnNwZWN0b3JBZ2VudDo6ZW5hYmxlKEVy
cm9yU3RyaW5nKikKICAgICAgICAgaW5zcGVjdChtX3BlbmRpbmdJbnNwZWN0RGF0YS5maXJzdCwg
bV9wZW5kaW5nSW5zcGVjdERhdGEuc2Vjb25kKTsKIAogICAgIGZvciAoVmVjdG9yPHBhaXI8bG9u
ZywgU3RyaW5nPiA+OjppdGVyYXRvciBpdCA9IG1fcGVuZGluZ0V2YWx1YXRlVGVzdENvbW1hbmRz
LmJlZ2luKCk7IG1fZnJvbnRlbmQgJiYgaXQgIT0gbV9wZW5kaW5nRXZhbHVhdGVUZXN0Q29tbWFu
ZHMuZW5kKCk7ICsraXQpCi0gICAgICAgIG1fZnJvbnRlbmQtPmluc3BlY3RvcigpLT5ldmFsdWF0
ZUZvclRlc3RJbkZyb250ZW5kKCgqaXQpLmZpcnN0LCAoKml0KS5zZWNvbmQpOworICAgICAgICBt
X2Zyb250ZW5kLT5pbnNwZWN0b3IoKS0+ZXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVuZChzdGF0aWNf
Y2FzdDxpbnQ+KCgqaXQpLmZpcnN0KSwgKCppdCkuc2Vjb25kKTsKICAgICBtX3BlbmRpbmdFdmFs
dWF0ZVRlc3RDb21tYW5kcy5jbGVhcigpOwogfQogCkBAIC0xNjMsNyArMTYzLDcgQEAgdm9pZCBJ
bnNwZWN0b3JBZ2VudDo6ZGlkQ3JlYXRlV29ya2VyKGludHB0cl90IGlkLCBjb25zdCBTdHJpbmcm
IHVybCwgYm9vbCBpc1NoYXIKICAgICBtX3dvcmtlcnMuc2V0KGlkLCB3b3JrZXJSZXNvdXJjZSk7
CiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiAgICAgaWYgKG1faW5zcGVjdGVkUGFn
ZSAmJiBtX2Zyb250ZW5kICYmIG1fc3RhdGUtPmdldEJvb2xlYW4oSW5zcGVjdG9yQWdlbnRTdGF0
ZTo6aW5zcGVjdG9yQWdlbnRFbmFibGVkKSkKLSAgICAgICAgbV9mcm9udGVuZC0+aW5zcGVjdG9y
KCktPmRpZENyZWF0ZVdvcmtlcihpZCwgdXJsLCBpc1NoYXJlZFdvcmtlcik7CisgICAgICAgIG1f
ZnJvbnRlbmQtPmluc3BlY3RvcigpLT5kaWRDcmVhdGVXb3JrZXIoc3RhdGljX2Nhc3Q8aW50Pihp
ZCksIHVybCwgaXNTaGFyZWRXb3JrZXIpOwogI2VuZGlmCiB9CiAKQEAgLTE3Nyw3ICsxNzcsNyBA
QCB2b2lkIEluc3BlY3RvckFnZW50OjpkaWREZXN0cm95V29ya2VyKGludHB0cl90IGlkKQogICAg
ICAgICByZXR1cm47CiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiAgICAgaWYgKG1f
aW5zcGVjdGVkUGFnZSAmJiBtX2Zyb250ZW5kICYmIG1fc3RhdGUtPmdldEJvb2xlYW4oSW5zcGVj
dG9yQWdlbnRTdGF0ZTo6aW5zcGVjdG9yQWdlbnRFbmFibGVkKSkKLSAgICAgICAgbV9mcm9udGVu
ZC0+aW5zcGVjdG9yKCktPmRpZERlc3Ryb3lXb3JrZXIoaWQpOworICAgICAgICBtX2Zyb250ZW5k
LT5pbnNwZWN0b3IoKS0+ZGlkRGVzdHJveVdvcmtlcihzdGF0aWNfY2FzdDxpbnQ+KGlkKSk7CiAj
ZW5kaWYKICAgICBtX3dvcmtlcnMucmVtb3ZlKHdvcmtlclJlc291cmNlKTsKIH0KQEAgLTE4Niw3
ICsxODYsNyBAQCB2b2lkIEluc3BlY3RvckFnZW50OjpkaWREZXN0cm95V29ya2VyKGludHB0cl90
IGlkKQogdm9pZCBJbnNwZWN0b3JBZ2VudDo6ZXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVuZChsb25n
IGNhbGxJZCwgY29uc3QgU3RyaW5nJiBzY3JpcHQpCiB7CiAgICAgaWYgKG1fc3RhdGUtPmdldEJv
b2xlYW4oSW5zcGVjdG9yQWdlbnRTdGF0ZTo6aW5zcGVjdG9yQWdlbnRFbmFibGVkKSkKLSAgICAg
ICAgbV9mcm9udGVuZC0+aW5zcGVjdG9yKCktPmV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQoY2Fs
bElkLCBzY3JpcHQpOworICAgICAgICBtX2Zyb250ZW5kLT5pbnNwZWN0b3IoKS0+ZXZhbHVhdGVG
b3JUZXN0SW5Gcm9udGVuZChzdGF0aWNfY2FzdDxpbnQ+KGNhbGxJZCksIHNjcmlwdCk7CiAgICAg
ZWxzZQogICAgICAgICBtX3BlbmRpbmdFdmFsdWF0ZVRlc3RDb21tYW5kcy5hcHBlbmQocGFpcjxs
b25nLCBTdHJpbmc+KGNhbGxJZCwgc2NyaXB0KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCmlu
ZGV4IGY3MDUzNWZjOGVhNDk5YzQxZjZjMjM5YzZiN2FjMWZiNzlkYWFjNTEuLjJlN2M3ZDliODdj
ZTk5YTZlNzllYzMzMzQ2ZDQ2MDI1NDczMGU0MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCkBA
IC05NSw3ICs5NSw3IEBAIHZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50Ojp1cGRh
dGVBcHBsaWNhdGlvbkNhY2hlU3RhdHVzKEZyYW1lKiBmcmFtZSkKICAgICBBcHBsaWNhdGlvbkNh
Y2hlSG9zdDo6Q2FjaGVJbmZvIGluZm8gPSBob3N0LT5hcHBsaWNhdGlvbkNhY2hlSW5mbygpOwog
CiAgICAgU3RyaW5nIG1hbmlmZXN0VVJMID0gaW5mby5tX21hbmlmZXN0LnN0cmluZygpOwotICAg
IG1fZnJvbnRlbmQtPmFwcGxpY2F0aW9uQ2FjaGVTdGF0dXNVcGRhdGVkKG1fcGFnZUFnZW50LT5m
cmFtZUlkKGZyYW1lKSwgbWFuaWZlc3RVUkwsIHN0YXR1cyk7CisgICAgbV9mcm9udGVuZC0+YXBw
bGljYXRpb25DYWNoZVN0YXR1c1VwZGF0ZWQobV9wYWdlQWdlbnQtPmZyYW1lSWQoZnJhbWUpLCBt
YW5pZmVzdFVSTCwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMpKTsKIH0KIAogdm9pZCBJbnNwZWN0
b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6Om5ldHdvcmtTdGF0ZUNoYW5nZWQoKQpAQCAtMTIxLDcg
KzEyMSw3IEBAIHZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpnZXRGcmFtZXNX
aXRoTWFuaWZlc3RzKEVycm9yU3RyaW5nKiwgUmVmUHRyCiAgICAgICAgICAgICBSZWZQdHI8VHlw
ZUJ1aWxkZXI6OkFwcGxpY2F0aW9uQ2FjaGU6OkZyYW1lV2l0aE1hbmlmZXN0PiB2YWx1ZSA9IFR5
cGVCdWlsZGVyOjpBcHBsaWNhdGlvbkNhY2hlOjpGcmFtZVdpdGhNYW5pZmVzdDo6Y3JlYXRlKCkK
ICAgICAgICAgICAgICAgICAuc2V0RnJhbWVJZChtX3BhZ2VBZ2VudC0+ZnJhbWVJZChmcmFtZSkp
CiAgICAgICAgICAgICAgICAgLnNldE1hbmlmZXN0VVJMKG1hbmlmZXN0VVJMKQotICAgICAgICAg
ICAgICAgIC5zZXRTdGF0dXMoaG9zdC0+c3RhdHVzKCkpOworICAgICAgICAgICAgICAgIC5zZXRT
dGF0dXMoc3RhdGljX2Nhc3Q8aW50Pihob3N0LT5zdGF0dXMoKSkpOwogICAgICAgICAgICAgcmVz
dWx0LT5hZGRJdGVtKHZhbHVlKTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IDdjYTA0NjExOTFjNDRlMjJi
ZmU3N2EzMjI5ZTg0Yzk5NDlhNDE2YWQuLmFjNGRmOTg4YWY5OTkzNzU4YjE4MzQ1ZjJiODY3YmZh
YWRlMmU4MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JE
T01BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFn
ZW50LmNwcApAQCAtMTIxOSw3ICsxMjE5LDcgQEAgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6RE9N
OjpOb2RlPiBJbnNwZWN0b3JET01BZ2VudDo6YnVpbGRPYmplY3RGb3JOb2RlKE5vZGUqIG4KIAog
ICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6RE9NOjpOb2RlPiB2YWx1ZSA9IFR5cGVCdWlsZGVyOjpE
T006Ok5vZGU6OmNyZWF0ZSgpCiAgICAgICAgIC5zZXROb2RlSWQoaWQpCi0gICAgICAgIC5zZXRO
b2RlVHlwZShub2RlLT5ub2RlVHlwZSgpKQorICAgICAgICAuc2V0Tm9kZVR5cGUoc3RhdGljX2Nh
c3Q8aW50Pihub2RlLT5ub2RlVHlwZSgpKSkKICAgICAgICAgLnNldE5vZGVOYW1lKG5vZGVOYW1l
KQogICAgICAgICAuc2V0TG9jYWxOYW1lKGxvY2FsTmFtZSkKICAgICAgICAgLnNldE5vZGVWYWx1
ZShub2RlVmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvck1lbW9yeUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JN
ZW1vcnlBZ2VudC5jcHAKaW5kZXggY2YwNWQ5YjYzNDI1NmYwNjVjNGI3NDE5ZGY5NjlmNGUzNzZj
M2U1ZS4uMjkwMDc3NTg5YjliY2Y1YzBiYjA3OGFhYjlhZTUzZGM3YThmYmZmNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwCkBAIC0z
MjUsMTEgKzMyNSwxMSBAQCBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb3JlOjpUeXBlQnVpbGRlcjo6
TWVtb3J5OjpNZW1vcnlCbG9jaz4ganNIZWFwSW5mbygpCiAgICAgU2NyaXB0R0NFdmVudDo6Z2V0
SGVhcFNpemUodXNlZEpTSGVhcFNpemUsIHRvdGFsSlNIZWFwU2l6ZSwganNIZWFwU2l6ZUxpbWl0
KTsKIAogICAgIFJlZlB0cjxXZWJDb3JlOjpUeXBlQnVpbGRlcjo6TWVtb3J5OjpNZW1vcnlCbG9j
az4gdG90YWxKc0hlYXAgPSBXZWJDb3JlOjpUeXBlQnVpbGRlcjo6TWVtb3J5OjpNZW1vcnlCbG9j
azo6Y3JlYXRlKCkuc2V0TmFtZShNZW1vcnlCbG9ja05hbWU6OnRvdGFsSnNIZWFwKTsKLSAgICB0
b3RhbEpzSGVhcC0+c2V0U2l6ZSh0b3RhbEpTSGVhcFNpemUpOworICAgIHRvdGFsSnNIZWFwLT5z
ZXRTaXplKHN0YXRpY19jYXN0PGludD4odG90YWxKU0hlYXBTaXplKSk7CiAKICAgICBSZWZQdHI8
VHlwZUJ1aWxkZXI6OkFycmF5PFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpNZW1vcnk6Ok1lbW9yeUJs
b2NrPiA+IGNoaWxkcmVuID0gVHlwZUJ1aWxkZXI6OkFycmF5PFdlYkNvcmU6OlR5cGVCdWlsZGVy
OjpNZW1vcnk6Ok1lbW9yeUJsb2NrPjo6Y3JlYXRlKCk7CiAgICAgUmVmUHRyPFdlYkNvcmU6OlR5
cGVCdWlsZGVyOjpNZW1vcnk6Ok1lbW9yeUJsb2NrPiB1c2VkSnNIZWFwID0gV2ViQ29yZTo6VHlw
ZUJ1aWxkZXI6Ok1lbW9yeTo6TWVtb3J5QmxvY2s6OmNyZWF0ZSgpLnNldE5hbWUoTWVtb3J5Qmxv
Y2tOYW1lOjp1c2VkSnNIZWFwKTsKLSAgICB1c2VkSnNIZWFwLT5zZXRTaXplKHVzZWRKU0hlYXBT
aXplKTsKKyAgICB1c2VkSnNIZWFwLT5zZXRTaXplKHN0YXRpY19jYXN0PGludD4odXNlZEpTSGVh
cFNpemUpKTsKICAgICBjaGlsZHJlbi0+YWRkSXRlbSh1c2VkSnNIZWFwKTsKIAogICAgIHRvdGFs
SnNIZWFwLT5zZXRDaGlsZHJlbihjaGlsZHJlbik7CkBAIC0zNDQsNyArMzQ0LDcgQEAgdm9pZCBJ
bnNwZWN0b3JNZW1vcnlBZ2VudDo6Z2V0UHJvY2Vzc01lbW9yeURpc3RyaWJ1dGlvbihFcnJvclN0
cmluZyosIFJlZlB0cjxXZWIKICAgICBQbGF0Zm9ybVN1cHBvcnQ6OmdldFByb2Nlc3NNZW1vcnlT
aXplKCZwcml2YXRlQnl0ZXMsICZzaGFyZWRCeXRlcyk7CiAjZW5kaWYKICAgICBwcm9jZXNzTWVt
b3J5ID0gV2ViQ29yZTo6VHlwZUJ1aWxkZXI6Ok1lbW9yeTo6TWVtb3J5QmxvY2s6OmNyZWF0ZSgp
LnNldE5hbWUoTWVtb3J5QmxvY2tOYW1lOjpwcm9jZXNzUHJpdmF0ZU1lbW9yeSk7Ci0gICAgcHJv
Y2Vzc01lbW9yeS0+c2V0U2l6ZShwcml2YXRlQnl0ZXMpOworICAgIHByb2Nlc3NNZW1vcnktPnNl
dFNpemUoc3RhdGljX2Nhc3Q8aW50Pihwcml2YXRlQnl0ZXMpKTsKIAogICAgIFJlZlB0cjxUeXBl
QnVpbGRlcjo6QXJyYXk8V2ViQ29yZTo6VHlwZUJ1aWxkZXI6Ok1lbW9yeTo6TWVtb3J5QmxvY2s+
ID4gY2hpbGRyZW4gPSBUeXBlQnVpbGRlcjo6QXJyYXk8V2ViQ29yZTo6VHlwZUJ1aWxkZXI6Ok1l
bW9yeTo6TWVtb3J5QmxvY2s+OjpjcmVhdGUoKTsKICAgICBjaGlsZHJlbi0+YWRkSXRlbShqc0hl
YXBJbmZvKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50
aW1lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQu
Y3BwCmluZGV4IDRlOWYyMWE0NWU2MmY2MmFiZmQyOTcwNTU2YjQwNjRhNmRjMGUxZjIuLjBkMjhm
N2ExNDM1MmI2MWY4ZjQ1OTk2Y2NlODU5OWJmYTMwZWMzYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKQEAgLTE1NCw3ICsxNTQsNyBAQCB2b2lk
IFBhZ2VSdW50aW1lQWdlbnQ6Om5vdGlmeUNvbnRleHRDcmVhdGVkKGNvbnN0IFN0cmluZyYgZnJh
bWVJZCwgU2NyaXB0U3RhdGUqCiAgICAgbG9uZyBleGVjdXRpb25Db250ZXh0SWQgPSBpbmplY3Rl
ZFNjcmlwdE1hbmFnZXIoKS0+aW5qZWN0ZWRTY3JpcHRJZEZvcihzY3JpcHRTdGF0ZSk7CiAgICAg
U3RyaW5nIG5hbWUgPSBzZWN1cml0eU9yaWdpbiA/IHNlY3VyaXR5T3JpZ2luLT50b1N0cmluZygp
IDogIiI7CiAgICAgbV9mcm9udGVuZC0+aXNvbGF0ZWRDb250ZXh0Q3JlYXRlZChFeGVjdXRpb25D
b250ZXh0RGVzY3JpcHRpb246OmNyZWF0ZSgpCi0gICAgICAgIC5zZXRJZChleGVjdXRpb25Db250
ZXh0SWQpCisgICAgICAgIC5zZXRJZChzdGF0aWNfY2FzdDxpbnQ+KGV4ZWN1dGlvbkNvbnRleHRJ
ZCkpCiAgICAgICAgIC5zZXRJc1BhZ2VDb250ZXh0KGlzUGFnZUNvbnRleHQpCiAgICAgICAgIC5z
ZXROYW1lKG5hbWUpCiAgICAgICAgIC5zZXRGcmFtZUlkKGZyYW1lSWQpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>