]> Cypherpunks repositories - gostls13.git/commit
encoding/xml: reject XML declaration after start of document
authorAxel Wagner <axel.wagner.hh@googlemail.com>
Wed, 14 Feb 2024 08:38:46 +0000 (09:38 +0100)
committerGopher Robot <gobot@golang.org>
Thu, 22 Feb 2024 22:50:20 +0000 (22:50 +0000)
commit8a0fbd75a54c27ff2ae624ac2775bf752cdbceb4
treef2f3db97bf9817ff1d6c148b2fcb27dbba478235
parentd892cb496a30ec274ee87f3cd0cf6bb7ac682ab3
encoding/xml: reject XML declaration after start of document

The XML specification requires an XML declaration, if present, to only
appear at the very beginning of the document, not even preceded by
whitespace. The parser currently accepts it at any part of the input.

Rejecting whitespace at the beginning of the file might break too many
users. This change instead only rejects an XML declaration preceded by
a non-whitespace token *and* allows the Encoder to emit whitespace
before an XML declaration. This means that a token stream produced by
the Decoder can be passed to the Encoder without error, while we still
don't emit clearly invalid XML.

This might break programs depending on Decoder allowing arbitrary XML
before the XML declaration.

Fixes #65691.

Change-Id: Ib1d4b3116aee63f40fd377f90595780b4befd1ee
Reviewed-on: https://go-review.googlesource.com/c/go/+/564035
Auto-Submit: Ian Lance Taylor <iant@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Than McIntosh <thanm@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
src/encoding/xml/marshal.go
src/encoding/xml/marshal_test.go
src/encoding/xml/xml.go
src/encoding/xml/xml_test.go