]> review.fuel-infra Code Review - puppet-modules/puppetlabs-firewall.git/commitdiff
(MODULES-8584) Handle multiple escaped quotes in comments properly
authorMateusz Gozdek <mateusz.gozdek@dunnhumby.com>
Fri, 1 Feb 2019 22:48:35 +0000 (23:48 +0100)
committerMateusz Gozdek <mateusz.gozdek@dunnhumby.com>
Fri, 1 Feb 2019 23:06:11 +0000 (00:06 +0100)
lib/puppet/provider/firewall/iptables.rb
spec/fixtures/iptables/conversion_hash.rb

index 9c674113a8c28fea09ffe2391f0c85470dd6758c..ce01c282742511e243934400fd272e35ed530b0b 100644 (file)
@@ -413,7 +413,7 @@ Puppet::Type.type(:firewall).provide :iptables, parent: Puppet::Provider::Firewa
     # --comment can have multiple values, the same as --match-set
     if values =~ %r{-m comment --comment}
       ind = values.index('-m comment --comment')
-      comments = values.scan(%r{-m comment --comment "(.*?[^\\"])"})
+      comments = values.scan(%r{-m comment --comment "((?:\\"|[^"])*)"})
       comments += values.scan(%r{-m comment --comment ([^"]+?)\b})
       values = values.gsub(%r{-m comment --comment (".*?[^\\"]"|[^ ].*)( |$)}, '')
       values = values.gsub(%r{-m comment --comment ([^"].*?)[ $]}, '')
index 166d9352b7641ea1a5f06268d637935ecd0a764a..0b4920a73649316aa866dbf7579ccdb1867708ba 100644 (file)
@@ -255,10 +255,10 @@ ARGS_TO_HASH = {
     },
   },
   'string_escape_sequences' => {
-    line: '-A INPUT -m comment --comment "000 parse escaped \\"s, \\\'s, and \\\\s"',
+    line: '-A INPUT -m comment --comment "000 parse escaped \\"s, \\"s, \\\'s, \\\'s, \\\\s and \\\\s"',
     table: 'filter',
     params: {
-      name: '000 parse escaped "s, \'s, and \\s',
+      name: '000 parse escaped "s, "s, \'s, \'s, \\s and \\s',
     },
   },
   'log_level_debug' => {