Merge "config.c: Skip UTF-8 BOMs if present when reading config files"

This commit is contained in:
George Joseph 2019-12-27 13:12:03 -06:00 committed by Gerrit Code Review
commit 7c4fc2e39a
1 changed files with 12 additions and 0 deletions

View File

@ -2219,6 +2219,18 @@ static struct ast_config *config_text_file_load(const char *database, const char
continue;
}
/* If there is a UTF-8 BOM, skip over it */
if (lineno == 1) {
#define UTF8_BOM "\xEF\xBB\xBF"
size_t line_bytes = strlen(buf);
size_t bom_bytes = sizeof(UTF8_BOM) - 1;
if (line_bytes >= bom_bytes
&& !memcmp(buf, UTF8_BOM, bom_bytes)) {
memmove(buf, &buf[bom_bytes], line_bytes - bom_bytes + 1);
}
#undef UTF8_BOM
}
if (ast_test_flag(&flags, CONFIG_FLAG_WITHCOMMENTS)
&& lline_buffer
&& ast_str_strlen(lline_buffer)) {