diff --git a/changelog/unreleased/sanitize-eos-xattr-values.md b/changelog/unreleased/sanitize-eos-xattr-values.md new file mode 100644 index 0000000000..23f4fdc5eb --- /dev/null +++ b/changelog/unreleased/sanitize-eos-xattr-values.md @@ -0,0 +1,3 @@ +Enhancement: Sanitize non-utf8 characters in xattr values in EOS + +https://github.com/cs3org/reva/pull/3438 diff --git a/pkg/eosclient/eosbinary/eosbinary.go b/pkg/eosclient/eosbinary/eosbinary.go index 2a56a863c4..f07192db9d 100644 --- a/pkg/eosclient/eosbinary/eosbinary.go +++ b/pkg/eosclient/eosbinary/eosbinary.go @@ -1074,7 +1074,7 @@ func (c *Client) parseFileInfo(ctx context.Context, raw string, parseFavoriteKey previousXAttr = strings.Replace(previousXAttr, "user.", "", 1) } case partsByEqual[0] == "xattrv": - attrs[previousXAttr] = partsByEqual[1] + attrs[previousXAttr] = strings.ToValidUTF8(partsByEqual[1], "") previousXAttr = "" default: kv[partsByEqual[0]] = partsByEqual[1]