liquid 2.6.0 → 2.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- OGUxZDY0MDJhNmUyYmJmZTZkNzllNWYzODExYzU4YjYzM2FmOTRmYg==
5
- data.tar.gz: !binary |-
6
- MDIwN2E3NDNlOGYxMGMwZjMyNGJjZmJmNzVjM2JmZWFmMjgxODBhOA==
2
+ SHA1:
3
+ metadata.gz: b0e31111a331f2a07fcb229b706bbb9b5e719b29
4
+ data.tar.gz: f1c6fbf31aec9e38ba89d022efe99fd5046f8794
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- Y2VkYWJjZWVhNWY0OWZlYTU2MTIzNzU2NTY0MjA0ZTM0N2FlNzQxMGIyNzRk
10
- Yzg3YWJjM2MxNGZjOGJlMGM0NjU1Y2FiYzgwODIxZmZmNDg5YTNlMDQzMGZm
11
- ODQwYmU3MTI0YzMxMDExNDA1NTM3ZDZiZDZmNWIwNTljYjI0MGI=
12
- data.tar.gz: !binary |-
13
- M2I1ODYyZTI2MDVjZDBkMmU4NzkxY2I5NDk0YWEzOGU3YTA2YzljODA5NzI5
14
- ZDAzNjIwMTE3YTA4YjNjOTBlNzNhM2FjMWY4YWE3YmRiMTVkNWE3ZTQwN2Rk
15
- ZmE0NTM2ZjNjZTZhZDc1OTZmYmQ1ODdhODE5YjE4YjlhNzI2OGI=
6
+ metadata.gz: a05f58776ef9c97c252192f092b5d7a4b945afa7d67d95668af0a019952dce717b1346a7bb8967d22e3272c9fc458cadf377a35aef9a10de5309df16190b12a1
7
+ data.tar.gz: 80ca90e27ae95d04efbee61dadd4ca3316e3593dab28a68350fb1d595813d38b27b52aecadd05394ad8973a392431fe7246b0fb3751dba6f40ad54bf982e1b67
data/History.md CHANGED
@@ -3,7 +3,13 @@
3
3
  IMPORTANT: Liquid 2.6 is going to be the last version of Liquid which maintains explicit Ruby 1.8 compatability.
4
4
  The following releases will only be tested against Ruby 1.9 and Ruby 2.0 and are likely to break on Ruby 1.8.
5
5
 
6
- ## 2.6.0 / 2013-11-25 / branch "2.6-stable"
6
+ ## 2.6.1 / 2014-01-10 / branch "2-6-stable"
7
+
8
+ Security fix, cherry-picked from master (4e14a65):
9
+ * Don't call to_sym when creating conditions for security reasons, see #273 [Bouke van der Bijl, bouk]
10
+ * Prevent arbitrary method invocation on condition objects, see #274 [Dylan Thacker-Smith, dylanahsmith]
11
+
12
+ ## 2.6.0 / 2013-11-25
7
13
 
8
14
  * ...
9
15
  * Bugfix for #106: fix example servlet [gnowoel]
@@ -15,6 +15,7 @@ module Liquid
15
15
  SyntaxHelp = "Syntax Error in tag 'if' - Valid syntax: if [expression]"
16
16
  Syntax = /(#{QuotedFragment})\s*([=!<>a-z_]+)?\s*(#{QuotedFragment})?/o
17
17
  ExpressionsAndOperators = /(?:\b(?:\s?and\s?|\s?or\s?)\b|(?:\s*(?!\b(?:\s?and\s?|\s?or\s?)\b)(?:#{QuotedFragment}|\S+)\s*)+)/o
18
+ BOOLEAN_OPERATORS = %w(and or)
18
19
 
19
20
  def initialize(tag_name, markup, tokens)
20
21
  @blocks = []
@@ -61,7 +62,8 @@ module Liquid
61
62
  raise(SyntaxError, SyntaxHelp) unless expressions.shift.to_s =~ Syntax
62
63
 
63
64
  new_condition = Condition.new($1, $2, $3)
64
- new_condition.send(operator.to_sym, condition)
65
+ raise SyntaxError, "invalid boolean operator" unless BOOLEAN_OPERATORS.include?(operator)
66
+ new_condition.send(operator, condition)
65
67
  condition = new_condition
66
68
  end
67
69
 
@@ -71,8 +73,6 @@ module Liquid
71
73
  @blocks.push(block)
72
74
  @nodelist = block.attach(Array.new)
73
75
  end
74
-
75
-
76
76
  end
77
77
 
78
78
  Template.register_tag('if', If)
@@ -1,4 +1,4 @@
1
1
  # encoding: utf-8
2
2
  module Liquid
3
- VERSION = "2.6.0"
3
+ VERSION = "2.6.1"
4
4
  end
@@ -157,4 +157,10 @@ class IfElseTagTest < Test::Unit::TestCase
157
157
  assert_template_result('yes',
158
158
  %({% if 'gnomeslab-and-or-liquid' contains 'gnomeslab-and-or-liquid' %}yes{% endif %}))
159
159
  end
160
+
161
+ def test_operators_are_whitelisted
162
+ assert_raise(SyntaxError) do
163
+ assert_template_result('', %({% if 1 or throw or or 1 %}yes{% endif %}))
164
+ end
165
+ end
160
166
  end # IfElseTest
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: liquid
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.0
4
+ version: 2.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tobias Luetke
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-25 00:00:00.000000000 Z
11
+ date: 2014-01-10 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email:
@@ -97,17 +97,17 @@ require_paths:
97
97
  - lib
98
98
  required_ruby_version: !ruby/object:Gem::Requirement
99
99
  requirements:
100
- - - ! '>='
100
+ - - '>='
101
101
  - !ruby/object:Gem::Version
102
102
  version: '0'
103
103
  required_rubygems_version: !ruby/object:Gem::Requirement
104
104
  requirements:
105
- - - ! '>='
105
+ - - '>='
106
106
  - !ruby/object:Gem::Version
107
107
  version: 1.3.7
108
108
  requirements: []
109
109
  rubyforge_project:
110
- rubygems_version: 2.1.10
110
+ rubygems_version: 2.0.3
111
111
  signing_key:
112
112
  specification_version: 4
113
113
  summary: A secure, non-evaling end user template engine with aesthetic markup.
@@ -143,4 +143,3 @@ test_files:
143
143
  - test/liquid/template_test.rb
144
144
  - test/liquid/variable_test.rb
145
145
  - test/test_helper.rb
146
- has_rdoc: