Issue #14096 has been updated by headius (Charles Nutter).


Pull request https://github.com/yaml/libyaml/pull/74 has been created for libyaml, which means this is likely to percolate up to MRI over the coming years.

It might be good to get ahead of it and patch Psych to forbid the single quote escape, but I'm not sure how easy that would be to do.

We are closing related bugs in JRuby as "Won't Fix" given that this character is not spec and will soon be forbidden by libyaml.

----------------------------------------
Bug #14096: Psych allows invalid single quote escape character
https://bugs.ruby-lang.org/issues/14096#change-68199

* Author: headius (Charles Nutter)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* 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>