[ruby-core:102812] [Ruby master Bug#14096] Psych allows invalid single quote escape character
From:
merch-redmine@...
Date:
2021-03-10 19:25:42 UTC
List:
ruby-core #102812
Issue #14096 has been updated by jeremyevans0 (Jeremy Evans).
Status changed from Assigned to Closed
This has been fixed in libyaml 0.2.1 (released June 2018), and the YAML given by @headius will raise `Psych::SyntaxError` on Ruby versions 1.9-3.0 when used with libyaml 0.2.1+.
----------------------------------------
Bug #14096: Psych allows invalid single quote escape character
https://bugs.ruby-lang.org/issues/14096#change-90864
* Author: headius (Charles Nutter)
* Status: Closed
* Priority: Normal
* Assignee: hsbt (Hiroshi SHIBATA)
* ruby -v: 2.4.1
* Backport: 2.3: UNKNOWN, 2.4: UNKNOWN
----------------------------------------
In https://github.com/jruby/jruby/issues/4847 (and previously in https://github.com/jruby/jruby/issues/2199) we have had users report that escaped single quotes within a YAML string do not parse in JRuby, although they parse in MRI.
According to the YAML specs (both 1.1 and 1.2), `\\'` is *not* a valid escape character. The YAML library we use, SnakeYAML, has pushed back on adding it since it is not part of the spec.
Why does MRI parse this invalid YAML?
```yaml
---
!!seq [
!!str "https://www.youtube.com/watch?v=DzpKasJJtRs",
!!str "2Pac - Dont Care What Ya\'ll Think Remix Music Video 2017",
]
```
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>