Handle CRLF when reading XML on Windows
xml-support.c uses FOPEN_RT, but then reads the entire contents of the file and verifies that the number of bytes read matches the length. This can fail on Windows, where the read will translate line terminators. This patch fixes the bug by changing xml-support.c to use FOPEN_RB. This works because expat correctly handles \r\n line terminators. gdb/ChangeLog 2019-12-11 Tom Tromey <tromey@adacore.com> * xml-support.c (xml_fetch_content_from_file): Use FOPEN_RB. gdb/testsuite/ChangeLog 2019-12-11 Tom Tromey <tromey@adacore.com> * gdb.xml/tdesc-arch.exp (set_arch): Add "trans_mode" parameter. Add crlf test. Change-Id: I548438f33eed284dde1de8babf755eaa1a40319d
This commit is contained in:
parent
228c8f4be0
commit
f69656d00f
4 changed files with 22 additions and 5 deletions
|
@ -977,11 +977,11 @@ xml_fetch_content_from_file (const char *filename, void *baton)
|
|||
{
|
||||
char *fullname = concat (dirname, "/", filename, (char *) NULL);
|
||||
|
||||
file = gdb_fopen_cloexec (fullname, FOPEN_RT);
|
||||
file = gdb_fopen_cloexec (fullname, FOPEN_RB);
|
||||
xfree (fullname);
|
||||
}
|
||||
else
|
||||
file = gdb_fopen_cloexec (filename, FOPEN_RT);
|
||||
file = gdb_fopen_cloexec (filename, FOPEN_RB);
|
||||
|
||||
if (file == NULL)
|
||||
return {};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue