Add support for different Maven POM encoding (#25873) (#25890)

Backport #25873 by @KN4CK3R

Fixes #25853

- Maven POM files aren't always UTF-8 encoded.
- Reject the upload of unparsable POM files

Co-authored-by: KN4CK3R <admin@oldschoolhack.me>
此提交包含在:
Giteabot
2023-07-14 10:27:15 +00:00
提交者 GitHub
co-authored by KN4CK3R
父節點 026e745b9e
當前提交 45b1f4dd3b
共有 3 個檔案被更改,包括 30 行新增2 行删除
+6 -1
查看文件
@@ -8,6 +8,8 @@ import (
"io"
"code.gitea.io/gitea/modules/validation"
"golang.org/x/net/html/charset"
)
// Metadata represents the metadata of a Maven package
@@ -52,7 +54,10 @@ type pomStruct struct {
// ParsePackageMetaData parses the metadata of a pom file
func ParsePackageMetaData(r io.Reader) (*Metadata, error) {
var pom pomStruct
if err := xml.NewDecoder(r).Decode(&pom); err != nil {
dec := xml.NewDecoder(r)
dec.CharsetReader = charset.NewReaderLabel
if err := dec.Decode(&pom); err != nil {
return nil, err
}