Skip to content

Commit

Permalink
bug #33818 [Yaml] Throw exception for tagged invalid inline elements …
Browse files Browse the repository at this point in the history
…(gharlan)

This PR was merged into the 3.4 branch.

Discussion
----------

[Yaml] Throw exception for tagged invalid inline elements

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | n/a
| License       | MIT
| Doc PR        | n/a

At the moment the result for `!foo 'don't do somthin' like that'` is a `TaggedValue` with value "don".

Commits
-------

bed479c [Yaml] Throw exception for tagged invalid inline elements
  • Loading branch information
xabbuh committed Oct 18, 2019
2 parents 29cabf9 + bed479c commit 52f8fc8
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 4 deletions.
8 changes: 4 additions & 4 deletions src/Symfony/Component/Yaml/Inline.php
Expand Up @@ -126,15 +126,15 @@ public static function parse($value, $flags = 0, $references = [])
$result = self::parseScalar($value, $flags, null, $i, null === $tag, $references);
}

if (null !== $tag) {
return new TaggedValue($tag, $result);
}

// some comments are allowed at the end
if (preg_replace('/\s+#.*$/A', '', substr($value, $i))) {
throw new ParseException(sprintf('Unexpected characters near "%s".', substr($value, $i)), self::$parsedLineNumber + 1, $value, self::$parsedFilename);
}

if (null !== $tag) {
return new TaggedValue($tag, $result);
}

return $result;
} finally {
if (isset($mbEncoding)) {
Expand Down
6 changes: 6 additions & 0 deletions src/Symfony/Component/Yaml/Tests/InlineTest.php
Expand Up @@ -201,6 +201,12 @@ public function testParseInvalidSequenceShouldThrowException()
Inline::parse('{ foo: bar } bar');
}

public function testParseInvalidTaggedSequenceShouldThrowException()
{
$this->expectException('Symfony\Component\Yaml\Exception\ParseException');
Inline::parse('!foo { bar: baz } qux', Yaml::PARSE_CUSTOM_TAGS);
}

public function testParseScalarWithCorrectlyQuotedStringShouldReturnString()
{
$value = "'don''t do somthin'' like that'";
Expand Down

0 comments on commit 52f8fc8

Please sign in to comment.