daemon/config: group JSON preprocessing steps

Signed-off-by: Bjorn Neergaard <bneergaard@mirantis.com>
This commit is contained in:
Bjorn Neergaard 2023-01-09 10:12:07 -07:00
parent bb19265ba8
commit cba3edbc37
No known key found for this signature in database

View file

@ -410,14 +410,14 @@ func getConflictFreeConfiguration(configFile string, flags *pflag.FlagSet) (*Con
return nil, err
}
var config Config
// Strip the UTF-8 BOM if present ([RFC 8259] allows JSON implementations to optionally strip the BOM for
// interoperability; do so here as Notepad on older versions of Windows Server insists on a BOM).
// [RFC 8259]: https://tools.ietf.org/html/rfc8259#section-8.1
b = bytes.TrimPrefix(b, []byte("\xef\xbb\xbf"))
// Trim whitespace so that an empty config can be detected for an early return.
b = bytes.TrimSpace(b)
var config Config
if len(b) == 0 {
return &config, nil // early return on empty config
}