提交 20fd2c82 编写于 作者: J jp9000

Fix UTF-8 signature detection

The signature detection code when reading UTF-8 files was causing the
UTF-8 strings read from file to allocate more data than they were
supposed to, causing the last 3 bytes to be garbage
上级 4be4dd73
......@@ -108,7 +108,7 @@ size_t os_fread_utf8(FILE *file, char **pstr)
if (size > 0) {
char bom[3];
char *utf8str = bmalloc(size+1);
char *utf8str;
off_t offset;
/* remove the ghastly BOM if present */
......@@ -116,6 +116,8 @@ size_t os_fread_utf8(FILE *file, char **pstr)
fread(bom, 1, 3, file);
offset = (astrcmp_n(bom, "\xEF\xBB\xBF", 3) == 0) ? 3 : 0;
size -= offset;
utf8str = bmalloc(size+1);
fseeko(file, offset, SEEK_SET);
fread(utf8str, 1, size, file);
utf8str[size] = 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册