summaryrefslogtreecommitdiffstats
path: root/actionpack-CVE-2012-1098-safe-buffer-slice.patch
blob: 3eaca8d2a19d1a95ba9f051c4d233ec8e1de8e23 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
From 00e632de2bde61425142ef8edc408e8d21ff9134 Mon Sep 17 00:00:00 2001
From: Aaron Patterson <aaron.patterson@gmail.com>
Date: Wed, 29 Feb 2012 16:37:30 -0800
Subject: [PATCH] Squashed commit of the following:
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

commit 917fd1a03845f4eedaccbc338f9d7524e98d45ee
Author: José Valim <jose.valim@gmail.com>
Date:   Wed Feb 29 22:30:51 2012 +0100

    Ensure [] respects the status of the buffer.

commit 6adc41789017682306181e3db5b30337fe450bcc
Author: Akira Matsuda <ronnie@dio.jp>
Date:   Mon Feb 13 17:57:05 2012 +0900

    use AS::SafeBuffer#clone_empty for flushing the output_buffer

commit e50ee96a0b37e7c5adfc555edd402ad04cc159f1
Author: Akira Matsuda <ronnie@dio.jp>
Date:   Mon Feb 13 17:54:58 2012 +0900

    add AS::SafeBuffer#clone_empty
---
 .../lib/action_view/helpers/capture_helper.rb      |    2 +-
 .../core_ext/string/output_safety.rb               |   50 ++++++++++++-------
 activesupport/test/safe_buffer_test.rb             |   46 ++++++++++++++++--
 3 files changed, 74 insertions(+), 24 deletions(-)

diff --git a/actionpack/lib/action_view/helpers/capture_helper.rb b/actionpack/lib/action_view/helpers/capture_helper.rb
index cbc660d..c91e4c1 100644
--- a/actionpack/lib/action_view/helpers/capture_helper.rb
+++ b/actionpack/lib/action_view/helpers/capture_helper.rb
@@ -179,7 +179,7 @@ module ActionView
       def flush_output_buffer #:nodoc:
         if output_buffer && !output_buffer.empty?
           response.body_parts << output_buffer
-          self.output_buffer = output_buffer[0,0]
+          self.output_buffer = output_buffer.respond_to?(:clone_empty) ? output_buffer.clone_empty : output_buffer[0, 0]
           nil
         end
       end