mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-04 03:50:31 +00:00
config.c: Skip UTF-8 BOMs if present when reading config files
ASTERISK-28667 #close Change-Id: I4767ed365c98f3e1587b7653321048a31d8a53b2
This commit is contained in:
@@ -2219,6 +2219,18 @@ static struct ast_config *config_text_file_load(const char *database, const char
|
|||||||
continue;
|
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)
|
if (ast_test_flag(&flags, CONFIG_FLAG_WITHCOMMENTS)
|
||||||
&& lline_buffer
|
&& lline_buffer
|
||||||
&& ast_str_strlen(lline_buffer)) {
|
&& ast_str_strlen(lline_buffer)) {
|
||||||
|
Reference in New Issue
Block a user