<?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>124611</bug_id>
          
          <creation_ts>2013-11-19 15:17:56 -0800</creation_ts>
          <short_desc>ARMv7: Crash due to use after free of AssemblerBuffer</short_desc>
          <delta_ts>2013-11-20 13:17:52 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>Windows 2000</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>952262</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-11-19 15:17:56 -0800</bug_when>
    <thetext>One crash trace seen is:
* thread #1: tid = 0x18ef, 0x0015ffe2 JavaScriptCore`JSC::ARMv7Assembler::executableOffsetFor(int) + 58, queue = &apos;com.apple.main-thread, stop reason = EXC_BAD_ACCESS (code=1, address=0x361672c)
    frame #0: 0x0015ffe2 JavaScriptCore`JSC::ARMv7Assembler::executableOffsetFor(int) + 58
    frame #1: 0x0015ffa2 JavaScriptCore`JSC::MacroAssemblerARMv7::executableOffsetFor(int) + 18
    frame #2: 0x0015ff80 JavaScriptCore`JSC::AssemblerLabel JSC::LinkBuffer::applyOffset&lt;JSC::AssemblerLabel&gt;(JSC::AssemblerLabel) + 20
    frame #3: 0x0015eb94 JavaScriptCore`JSC::LinkBuffer::locationOf(JSC::AbstractMacroAssembler&lt;JSC::ARMv7Assembler&gt;::Label) + 32
    frame #4: 0x0018e0ca JavaScriptCore`JSC::DFG::JITFinalizer::finalizeFunction() + 38
    frame #5: 0x001c18ba JavaScriptCore`JSC::DFG::Plan::finalizeWithoutNotifyingCallback() + 62
    frame #6: 0x00161504 JavaScriptCore`JSC::DFG::compileImpl(JSC::VM&amp;, JSC::CodeBlock*, JSC::DFG::CompilationMode, unsigned int, JSC::Operands&lt;JSC::JSValue, JSC::OperandValueTraits&lt;JSC::JSValue&gt; &gt; const&amp;, WTF::PassRefPtr&lt;JSC::DeferredCompilationCallback&gt;, JSC::DFG::Worklist*) + 932
    frame #7: 0x00161116 JavaScriptCore`JSC::DFG::compile(JSC::VM&amp;, JSC::CodeBlock*, JSC::DFG::CompilationMode, unsigned int, JSC::Operands&lt;JSC::JSValue, JSC::OperandValueTraits&lt;JSC::JSValue&gt; &gt; const&amp;, WTF::PassRefPtr&lt;JSC::DeferredCompilationCallback&gt;, JSC::DFG::Worklist*) + 138
    frame #8: 0x0027fdbc JavaScriptCore`operationOptimize + 1480
    frame #9: 0x44230b79

The issue is that the ARMv7Assembler object is a local in Plan::compileInThreadImpl() and has been freed. 

ANother more obscure stack trace is:
* thread #1: tid = 0x15f8, 0x00488726 JavaScriptCore`WTFCrash + 58 at Assertions.cpp:341, queue = &apos;com.apple.main-thread, stop reason = EXC_BAD_ACCESS (code=1, address=0xbbadbeef)
    frame #0: 0x00488726 JavaScriptCore`WTFCrash + 58 at Assertions.cpp:341
    frame #1: 0x000ce5e0 JavaScriptCore`WTF::CrashOnOverflow::overflowed() + 8 at CheckedArithmetic.h:80
    frame #2: 0x000aa67e JavaScriptCore`WTF::Vector&lt;WTF::Vector&lt;JSC::DFG::OSRExit, 8ul, WTF::CrashOnOverflow&gt;*, 0ul, WTF::CrashOnOverflow&gt;::at(this=0x0125deb4, i=848195) + 54 at Vector.h:584
    frame #3: 0x000aa642 JavaScriptCore`WTF::Vector&lt;WTF::Vector&lt;JSC::DFG::OSRExit, 8ul, WTF::CrashOnOverflow&gt;*, 0ul, WTF::CrashOnOverflow&gt;::operator[](this=0x0125deb4, i=848195) + 18 at Vector.h:604
    frame #4: 0x000aa5ac JavaScriptCore`WTF::SegmentedVector&lt;JSC::DFG::OSRExit, 8ul, 32ul&gt;::segmentFor(this=0x0125deb0, index=6785564) + 28 at SegmentedVector.h:217
    frame #5: 0x000aa574 JavaScriptCore`WTF::SegmentedVector&lt;JSC::DFG::OSRExit, 8ul, 32ul&gt;::at(this=0x0125deb0, index=6785564) + 20 at SegmentedVector.h:128
    frame #6: 0x000aa18a JavaScriptCore`WTF::SegmentedVector&lt;JSC::DFG::OSRExit, 8ul, 32ul&gt;::operator[](this=0x0125deb0, index=6785564) + 18 at SegmentedVector.h:138
    frame #7: 0x001ba486 JavaScriptCore`compileOSRExit(exec=0x02bff7d8) + 246 at DFGOSRExitCompiler.cpp:61
    frame #8: 0x5dec2ca7
    frame #9: 0x0034e900 JavaScriptCore`llint_op_call + 218
…</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952263</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-11-19 15:18:10 -0800</bug_when>
    <thetext>&lt;rdar://problem/15452643&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952267</commentid>
    <comment_count>2</comment_count>
      <attachid>217341</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-11-19 15:24:12 -0800</bug_when>
    <thetext>Created attachment 217341
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952270</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-19 15:26:16 -0800</bug_when>
    <thetext>Attachment 217341 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source/JavaScriptCore/assembler/MacroAssembler.cpp&apos;, u&apos;Source/JavaScriptCore/dfg/DFGJITFinalizer.cpp&apos;, u&apos;Source/JavaScriptCore/dfg/DFGJITFinalizer.h&apos;]&quot; exit_code: 1
Source/JavaScriptCore/assembler/MacroAssembler.cpp:1:  Missing spaces around /  [whitespace/operators] [3]
Total errors found: 1 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952271</commentid>
    <comment_count>4</comment_count>
      <attachid>217341</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-11-19 15:26:21 -0800</bug_when>
    <thetext>Comment on attachment 217341
Patch

Attachment 217341 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/28628031</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952273</commentid>
    <comment_count>5</comment_count>
      <attachid>217344</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-11-19 15:29:03 -0800</bug_when>
    <thetext>Created attachment 217344
Fixed inadvertent typo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952281</commentid>
    <comment_count>6</comment_count>
      <attachid>217344</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-11-19 15:45:08 -0800</bug_when>
    <thetext>Comment on attachment 217344
Fixed inadvertent typo

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

&gt; Source/JavaScriptCore/dfg/DFGJITFinalizer.cpp:44
&gt; +    if (m_arityCheck.isSet())

The old code didn&apos;t check m_arityCheck.isSet(). Why do we need to check it now?

&gt; Source/JavaScriptCore/dfg/DFGJITFinalizer.h:54
&gt;      MacroAssembler::Label m_arityCheck;
&gt; +    MacroAssemblerCodePtr m_withArityCheck;

It&apos;s not so great to have two data members with equivalent names, one of which works, and the other of which crashes your program. Can we remove the Label version of arityCheck? It appears to be used only in the JITFinalizer constructor function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952283</commentid>
    <comment_count>7</comment_count>
      <attachid>217344</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-11-19 15:47:38 -0800</bug_when>
    <thetext>Comment on attachment 217344
Fixed inadvertent typo

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

&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +        Changed JITFinalizer constructor to calculate and save the with-arity-check entry point.
&gt; +        At that point, the assembler object is still valid.  In finalizeFunction(), we use that value

Which assembler object are you talking about? Was it locationOf() that was using the invalid assembler? Is there a risk that finalizeCodeWithoutDisassembly() will use the invalid assembler?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952288</commentid>
    <comment_count>8</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-11-19 15:56:39 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 217344 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=217344&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:9
&gt; &gt; +        Changed JITFinalizer constructor to calculate and save the with-arity-check entry point.
&gt; &gt; +        At that point, the assembler object is still valid.  In finalizeFunction(), we use that value
&gt; 
&gt; Which assembler object are you talking about? Was it locationOf() that was using the invalid assembler? Is there a risk that finalizeCodeWithoutDisassembly() will use the invalid assembler?

The assembler object is the MacroAssembler* m_assembler in LinkBuffer.  Yes, it was LinkBuffer::locationOf() that was using the freed assembler.

finalizeCodeWithoutDisassembly() is making the buffer ready for execution.  It doesn&apos;t access the assembler.

The only reason that locationOf() accesses the assembler is due to branch compaction.  We store the delta in the assembler buffer as part of the compaction.  I didn&apos;t find any other uses of m_assembler after the code has been linked.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952388</commentid>
    <comment_count>9</comment_count>
      <attachid>217374</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-11-19 19:55:45 -0800</bug_when>
    <thetext>Created attachment 217374
Updated patch

Changed the JITFinalizer() to take a resolved MacroAssemblerCodePtr instead of a MacroAssembler::Label.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952708</commentid>
    <comment_count>10</comment_count>
      <attachid>217374</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-11-20 11:52:19 -0800</bug_when>
    <thetext>Comment on attachment 217374
Updated patch

r=me

It looks like, for the FTL JITFinalizer, we&apos;ll need to make a similar move away from Labels and toward post-relaxation pointers. Can you file a bug about that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952743</commentid>
    <comment_count>11</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-11-20 13:12:59 -0800</bug_when>
    <thetext>Committed r159577: &lt;http://trac.webkit.org/changeset/159577&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952748</commentid>
    <comment_count>12</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-11-20 13:17:52 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 217374 [details])
&gt; r=me
&gt; 
&gt; It looks like, for the FTL JITFinalizer, we&apos;ll need to make a similar move away from Labels and toward post-relaxation pointers. Can you file a bug about that?

Added https://bugs.webkit.org/show_bug.cgi?id=124674 - &quot;FTLJITFinalizer shouldn&apos;t keep Labels to the contained generated code&quot;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217341</attachid>
            <date>2013-11-19 15:24:12 -0800</date>
            <delta_ts>2013-11-19 15:29:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>124611.patch</filename>
            <type>text/plain</type>
            <size>2989</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU5NTI1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBA
CisyMDEzLTExLTE5ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIEFSTXY3OiBDcmFzaCBkdWUgdG8gdXNlIGFmdGVyIGZyZWUgb2YgQXNzZW1ibGVyQnVmZmVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ2MTEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2Vk
IEpJVEZpbmFsaXplciBjb25zdHJ1Y3RvciB0byBjYWxjdWxhdGUgYW5kIHNhdmUgdGhlIHdpdGgt
YXJpdHktY2hlY2sgZW50cnkgcG9pbnQuCisgICAgICAgIEF0IHRoYXQgcG9pbnQsIHRoZSBhc3Nl
bWJsZXIgb2JqZWN0IGlzIHN0aWxsIHZhbGlkLiAgSW4gZmluYWxpemVGdW5jdGlvbigpLCB3ZSB1
c2UgdGhhdCB2YWx1ZQorICAgICAgICBpbnN0ZWFkIG9mIGNhbGN1bGF0aW5nIGl0LgorCisgICAg
ICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmNwcDoKKyAgICAgICAgKiBkZmcvREZHSklU
RmluYWxpemVyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpKSVRGaW5hbGl6ZXI6OkpJVEZpbmFs
aXplcik6CisgICAgICAgIChKU0M6OkRGRzo6SklURmluYWxpemVyOjpmaW5hbGl6ZUZ1bmN0aW9u
KToKKyAgICAgICAgKiBkZmcvREZHSklURmluYWxpemVyLmg6CisKIDIwMTMtMTEtMTggIE1pY2hh
ZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjE1
OTM5NSk6IEVycm9yIGNvbXBpbGluZyBmb3IgQVJNdjcKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuY3BwCShyZXZpc2lvbiAxNTk1
MjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAKLS8qCisGLyoKICAqIENvcHlyaWdodCAo
QykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVEZpbmFsaXplci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRGaW5hbGl6ZXIuY3Bw
CShyZXZpc2lvbiAxNTk1MjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVEZp
bmFsaXplci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDEwIEBAIEpJVEZpbmFsaXpl
cjo6SklURmluYWxpemVyKFBsYW4mIHBsYW4sIFAKICAgICAsIG1faml0Q29kZShqaXRDb2RlKQog
ICAgICwgbV9saW5rQnVmZmVyKGxpbmtCdWZmZXIpCiAgICAgLCBtX2FyaXR5Q2hlY2soYXJpdHlD
aGVjaykKKyAgICAsIG1fd2l0aEFyaXR5Q2hlY2soTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKE1hY3Jv
QXNzZW1ibGVyQ29kZVB0cjo6RW1wdHlWYWx1ZSkpCiB7CisgICAgaWYgKG1fYXJpdHlDaGVjay5p
c1NldCgpKQorICAgICAgICBtX3dpdGhBcml0eUNoZWNrID0gbV9saW5rQnVmZmVyLT5sb2NhdGlv
bk9mKG1fYXJpdHlDaGVjayk7CiB9CiAKIEpJVEZpbmFsaXplcjo6fkpJVEZpbmFsaXplcigpCkBA
IC01OCw5ICs2MSw5IEBAIGJvb2wgSklURmluYWxpemVyOjpmaW5hbGl6ZSgpCiAKIGJvb2wgSklU
RmluYWxpemVyOjpmaW5hbGl6ZUZ1bmN0aW9uKCkKIHsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHIgd2l0aEFyaXR5Q2hlY2sgPSBtX2xpbmtCdWZmZXItPmxvY2F0aW9uT2YobV9hcml0eUNoZWNr
KTsKKyAgICBSRUxFQVNFX0FTU0VSVCghbV93aXRoQXJpdHlDaGVjay5pc0VtcHR5VmFsdWUoKSk7
CiAgICAgbV9qaXRDb2RlLT5pbml0aWFsaXplQ29kZVJlZihtX2xpbmtCdWZmZXItPmZpbmFsaXpl
Q29kZVdpdGhvdXREaXNhc3NlbWJseSgpKTsKLSAgICBtX3BsYW4uY29kZUJsb2NrLT5zZXRKSVRD
b2RlKG1faml0Q29kZSwgd2l0aEFyaXR5Q2hlY2spOworICAgIG1fcGxhbi5jb2RlQmxvY2stPnNl
dEpJVENvZGUobV9qaXRDb2RlLCBtX3dpdGhBcml0eUNoZWNrKTsKICAgICAKICAgICBmaW5hbGl6
ZUNvbW1vbigpOwogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRG
aW5hbGl6ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJ
VEZpbmFsaXplci5oCShyZXZpc2lvbiAxNTk1MjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0pJVEZpbmFsaXplci5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSw2ICs1MSw3IEBAIHBy
aXZhdGU6CiAgICAgUmVmUHRyPEpJVENvZGU+IG1faml0Q29kZTsKICAgICBPd25QdHI8TGlua0J1
ZmZlcj4gbV9saW5rQnVmZmVyOwogICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBtX2FyaXR5Q2hl
Y2s7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIG1fd2l0aEFyaXR5Q2hlY2s7CiB9OwogCiB9
IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCg==
</data>
<flag name="commit-queue"
          id="240461"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217344</attachid>
            <date>2013-11-19 15:29:03 -0800</date>
            <delta_ts>2013-11-19 19:55:45 -0800</delta_ts>
            <desc>Fixed inadvertent typo</desc>
            <filename>124611-2.patch</filename>
            <type>text/plain</type>
            <size>2565</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU5NTI1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBA
CisyMDEzLTExLTE5ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIEFSTXY3OiBDcmFzaCBkdWUgdG8gdXNlIGFmdGVyIGZyZWUgb2YgQXNzZW1ibGVyQnVmZmVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ2MTEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2Vk
IEpJVEZpbmFsaXplciBjb25zdHJ1Y3RvciB0byBjYWxjdWxhdGUgYW5kIHNhdmUgdGhlIHdpdGgt
YXJpdHktY2hlY2sgZW50cnkgcG9pbnQuCisgICAgICAgIEF0IHRoYXQgcG9pbnQsIHRoZSBhc3Nl
bWJsZXIgb2JqZWN0IGlzIHN0aWxsIHZhbGlkLiAgSW4gZmluYWxpemVGdW5jdGlvbigpLCB3ZSB1
c2UgdGhhdCB2YWx1ZQorICAgICAgICBpbnN0ZWFkIG9mIGNhbGN1bGF0aW5nIGl0LgorCisgICAg
ICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmNwcDoKKyAgICAgICAgKiBkZmcvREZHSklU
RmluYWxpemVyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpKSVRGaW5hbGl6ZXI6OkpJVEZpbmFs
aXplcik6CisgICAgICAgIChKU0M6OkRGRzo6SklURmluYWxpemVyOjpmaW5hbGl6ZUZ1bmN0aW9u
KToKKyAgICAgICAgKiBkZmcvREZHSklURmluYWxpemVyLmg6CisKIDIwMTMtMTEtMTggIE1pY2hh
ZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjE1
OTM5NSk6IEVycm9yIGNvbXBpbGluZyBmb3IgQVJNdjcKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHSklURmluYWxpemVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0pJVEZpbmFsaXplci5jcHAJKHJldmlzaW9uIDE1OTUyMikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklURmluYWxpemVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzksNyArMzksMTAgQEAgSklURmluYWxpemVyOjpKSVRGaW5hbGl6ZXIoUGxhbiYgcGxh
biwgUAogICAgICwgbV9qaXRDb2RlKGppdENvZGUpCiAgICAgLCBtX2xpbmtCdWZmZXIobGlua0J1
ZmZlcikKICAgICAsIG1fYXJpdHlDaGVjayhhcml0eUNoZWNrKQorICAgICwgbV93aXRoQXJpdHlD
aGVjayhNYWNyb0Fzc2VtYmxlckNvZGVQdHIoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjpFbXB0eVZh
bHVlKSkKIHsKKyAgICBpZiAobV9hcml0eUNoZWNrLmlzU2V0KCkpCisgICAgICAgIG1fd2l0aEFy
aXR5Q2hlY2sgPSBtX2xpbmtCdWZmZXItPmxvY2F0aW9uT2YobV9hcml0eUNoZWNrKTsKIH0KIAog
SklURmluYWxpemVyOjp+SklURmluYWxpemVyKCkKQEAgLTU4LDkgKzYxLDkgQEAgYm9vbCBKSVRG
aW5hbGl6ZXI6OmZpbmFsaXplKCkKIAogYm9vbCBKSVRGaW5hbGl6ZXI6OmZpbmFsaXplRnVuY3Rp
b24oKQogewotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciB3aXRoQXJpdHlDaGVjayA9IG1fbGlu
a0J1ZmZlci0+bG9jYXRpb25PZihtX2FyaXR5Q2hlY2spOworICAgIFJFTEVBU0VfQVNTRVJUKCFt
X3dpdGhBcml0eUNoZWNrLmlzRW1wdHlWYWx1ZSgpKTsKICAgICBtX2ppdENvZGUtPmluaXRpYWxp
emVDb2RlUmVmKG1fbGlua0J1ZmZlci0+ZmluYWxpemVDb2RlV2l0aG91dERpc2Fzc2VtYmx5KCkp
OwotICAgIG1fcGxhbi5jb2RlQmxvY2stPnNldEpJVENvZGUobV9qaXRDb2RlLCB3aXRoQXJpdHlD
aGVjayk7CisgICAgbV9wbGFuLmNvZGVCbG9jay0+c2V0SklUQ29kZShtX2ppdENvZGUsIG1fd2l0
aEFyaXR5Q2hlY2spOwogICAgIAogICAgIGZpbmFsaXplQ29tbW9uKCk7CiAgICAgCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVEZpbmFsaXplci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklURmluYWxpemVyLmgJKHJldmlzaW9uIDE1
OTUyMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklURmluYWxpemVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTUxLDYgKzUxLDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8SklUQ29k
ZT4gbV9qaXRDb2RlOwogICAgIE93blB0cjxMaW5rQnVmZmVyPiBtX2xpbmtCdWZmZXI7CiAgICAg
TWFjcm9Bc3NlbWJsZXI6OkxhYmVsIG1fYXJpdHlDaGVjazsKKyAgICBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHIgbV93aXRoQXJpdHlDaGVjazsKIH07CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217374</attachid>
            <date>2013-11-19 19:55:45 -0800</date>
            <delta_ts>2013-11-20 11:52:19 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>124611-3.patch</filename>
            <type>text/plain</type>
            <size>4007</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU5NTMyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBA
CisyMDEzLTExLTE5ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIEFSTXY3OiBDcmFzaCBkdWUgdG8gdXNlIGFmdGVyIGZyZWUgb2YgQXNzZW1ibGVyQnVmZmVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ2MTEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2Vk
IEpJVEZpbmFsaXplciBjb25zdHJ1Y3RvciB0byB0YWtlIGEgTWFjcm9Bc3NlbWJsZXJDb2RlUHRy
IGluc3RlYWQgb2YgYSBMYWJlbC4KKyAgICAgICAgSW4gZmluYWxpemVGdW5jdGlvbigpLCB3ZSB1
c2UgdGhhdCB2YWx1ZSBpbnN0ZWFkIG9mIGNhbGN1bGF0aW5nIGl0IGZyb20gdGhlIGxhYmVsLgor
CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmNwcDoKKyAgICAgICAgKiBkZmcv
REZHSklURmluYWxpemVyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpKSVRGaW5hbGl6ZXI6OkpJ
VEZpbmFsaXplcik6CisgICAgICAgIChKU0M6OkRGRzo6SklURmluYWxpemVyOjpmaW5hbGl6ZUZ1
bmN0aW9uKToKKyAgICAgICAgKiBkZmcvREZHSklURmluYWxpemVyLmg6CisKIDIwMTMtMTEtMTkg
IE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lP
TigxNTgzODQpIEFSTXY3IHBvaW50IGNoZWNrcyB0b28gcmVzdHJpY3RpdmUgZm9yIG5hdGl2ZSBj
YWxscyB0byB0cmFkaXRpb25hbCBBUk0gY29kZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdKSVRDb21waWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAJKHJldmlzaW9uIDE1OTUzMSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
MDIsOSArNDAyLDExIEBAIHZvaWQgSklUQ29tcGlsZXI6OmxpbmtGdW5jdGlvbigpCiAgICAgbGlu
a0J1ZmZlci0+bGluayhtX2NhbGxBcml0eUZpeHVwLCBGdW5jdGlvblB0cigobV92bS0+Z2V0Q1RJ
U3R1Yihhcml0eUZpeHVwKSkuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKICAgICAKICAg
ICBkaXNhc3NlbWJsZSgqbGlua0J1ZmZlcik7Ci0gICAgCisKKyAgICBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHIgd2l0aEFyaXR5Q2hlY2sgPSBsaW5rQnVmZmVyLT5sb2NhdGlvbk9mKG1fYXJpdHlDaGVj
ayk7CisKICAgICBtX2dyYXBoLm1fcGxhbi5maW5hbGl6ZXIgPSBhZG9wdFB0cihuZXcgSklURmlu
YWxpemVyKAotICAgICAgICBtX2dyYXBoLm1fcGxhbiwgbV9qaXRDb2RlLnJlbGVhc2UoKSwgbGlu
a0J1ZmZlci5yZWxlYXNlKCksIG1fYXJpdHlDaGVjaykpOworICAgICAgICBtX2dyYXBoLm1fcGxh
biwgbV9qaXRDb2RlLnJlbGVhc2UoKSwgbGlua0J1ZmZlci5yZWxlYXNlKCksIHdpdGhBcml0eUNo
ZWNrKSk7CiB9CiAKIHZvaWQgSklUQ29tcGlsZXI6OmRpc2Fzc2VtYmxlKExpbmtCdWZmZXImIGxp
bmtCdWZmZXIpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVEZpbmFsaXpl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRGaW5h
bGl6ZXIuY3BwCShyZXZpc2lvbiAxNTk1MzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0pJVEZpbmFsaXplci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDExICszNCwxMSBAQAog
CiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKLUpJVEZpbmFsaXplcjo6SklURmlu
YWxpemVyKFBsYW4mIHBsYW4sIFBhc3NSZWZQdHI8SklUQ29kZT4gaml0Q29kZSwgUGFzc093blB0
cjxMaW5rQnVmZmVyPiBsaW5rQnVmZmVyLCBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgYXJpdHlDaGVj
aykKK0pJVEZpbmFsaXplcjo6SklURmluYWxpemVyKFBsYW4mIHBsYW4sIFBhc3NSZWZQdHI8SklU
Q29kZT4gaml0Q29kZSwgUGFzc093blB0cjxMaW5rQnVmZmVyPiBsaW5rQnVmZmVyLCBNYWNyb0Fz
c2VtYmxlckNvZGVQdHIgd2l0aEFyaXR5Q2hlY2spCiAgICAgOiBGaW5hbGl6ZXIocGxhbikKICAg
ICAsIG1faml0Q29kZShqaXRDb2RlKQogICAgICwgbV9saW5rQnVmZmVyKGxpbmtCdWZmZXIpCi0g
ICAgLCBtX2FyaXR5Q2hlY2soYXJpdHlDaGVjaykKKyAgICAsIG1fd2l0aEFyaXR5Q2hlY2sod2l0
aEFyaXR5Q2hlY2spCiB7CiB9CiAKQEAgLTU4LDkgKzU4LDkgQEAgYm9vbCBKSVRGaW5hbGl6ZXI6
OmZpbmFsaXplKCkKIAogYm9vbCBKSVRGaW5hbGl6ZXI6OmZpbmFsaXplRnVuY3Rpb24oKQogewot
ICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciB3aXRoQXJpdHlDaGVjayA9IG1fbGlua0J1ZmZlci0+
bG9jYXRpb25PZihtX2FyaXR5Q2hlY2spOworICAgIFJFTEVBU0VfQVNTRVJUKCFtX3dpdGhBcml0
eUNoZWNrLmlzRW1wdHlWYWx1ZSgpKTsKICAgICBtX2ppdENvZGUtPmluaXRpYWxpemVDb2RlUmVm
KG1fbGlua0J1ZmZlci0+ZmluYWxpemVDb2RlV2l0aG91dERpc2Fzc2VtYmx5KCkpOwotICAgIG1f
cGxhbi5jb2RlQmxvY2stPnNldEpJVENvZGUobV9qaXRDb2RlLCB3aXRoQXJpdHlDaGVjayk7Cisg
ICAgbV9wbGFuLmNvZGVCbG9jay0+c2V0SklUQ29kZShtX2ppdENvZGUsIG1fd2l0aEFyaXR5Q2hl
Y2spOwogICAgIAogICAgIGZpbmFsaXplQ29tbW9uKCk7CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0pJVEZpbmFsaXplci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHSklURmluYWxpemVyLmgJKHJldmlzaW9uIDE1OTUzMSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklURmluYWxpemVyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiBj
bGFzcyBKSVRGaW5hbGl6ZXIgOiBwdWJsaWMgRmluYWxpemVyIHsKIHB1YmxpYzoKLSAgICBKSVRG
aW5hbGl6ZXIoUGxhbiYsIFBhc3NSZWZQdHI8SklUQ29kZT4sIFBhc3NPd25QdHI8TGlua0J1ZmZl
cj4sIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBhcml0eUNoZWNrID0gTWFjcm9Bc3NlbWJsZXI6Okxh
YmVsKCkpOworICAgIEpJVEZpbmFsaXplcihQbGFuJiwgUGFzc1JlZlB0cjxKSVRDb2RlPiwgUGFz
c093blB0cjxMaW5rQnVmZmVyPiwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIHdpdGhBcml0eUNoZWNr
ID0gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6RW1wdHlWYWx1
ZSkpOwogICAgIHZpcnR1YWwgfkpJVEZpbmFsaXplcigpOwogICAgIAogICAgIHZpcnR1YWwgYm9v
bCBmaW5hbGl6ZSgpIE9WRVJSSURFOwpAQCAtNTAsNyArNTAsNyBAQCBwcml2YXRlOgogICAgIAog
ICAgIFJlZlB0cjxKSVRDb2RlPiBtX2ppdENvZGU7CiAgICAgT3duUHRyPExpbmtCdWZmZXI+IG1f
bGlua0J1ZmZlcjsKLSAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgbV9hcml0eUNoZWNrOworICAg
IE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBtX3dpdGhBcml0eUNoZWNrOwogfTsKIAogfSB9IC8vIG5h
bWVzcGFjZSBKU0M6OkRGRwo=
</data>
<flag name="review"
          id="240490"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>