summaryrefslogtreecommitdiff
path: root/gdb/xml-support.c
diff options
context:
space:
mode:
authorTom Tromey <tromey@adacore.com>2019-12-10 11:44:36 -0700
committerTom Tromey <tromey@adacore.com>2019-12-19 10:00:05 -0700
commitf69656d00fe3154519ea21668d964bf8cc50c01b (patch)
treee07fe31898f35e94c42ff5e8e185488e7a26f845 /gdb/xml-support.c
parent228c8f4be0c428369ec6b68e25696863d1e62ed7 (diff)
downloadbinutils-gdb-f69656d00fe3154519ea21668d964bf8cc50c01b.tar.gz
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
Diffstat (limited to 'gdb/xml-support.c')
-rw-r--r--gdb/xml-support.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gdb/xml-support.c b/gdb/xml-support.c
index f5a14275457..0f0806f8ee0 100644
--- a/gdb/xml-support.c
+++ b/gdb/xml-support.c
@@ -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 {};