diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2014-09-02 13:34:01 +0400 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2014-09-02 13:34:01 +0400 |
commit | fa06cf6edf86aa1839d4f43bfd3bd9a3a36b5223 (patch) | |
tree | 705466443ec58fffa74a3499a3bcc56be1cdee9d /debian/patches/0010-Fix-handling-of-mmap-errors.patch | |
parent | 08f466c86ef859f2f3ab1f65677536cbccd85960 (diff) | |
parent | 3a8c2d58eab0410fe5e79a112614aa9be061dc46 (diff) | |
download | libxml2-fa06cf6edf86aa1839d4f43bfd3bd9a3a36b5223.tar.gz |
Merge branch 'master' of git://anonscm.debian.org/debian-xml-sgml/libxml2
Conflicts:
debian/changelog
debian/control
debian/rules
Diffstat (limited to 'debian/patches/0010-Fix-handling-of-mmap-errors.patch')
-rw-r--r-- | debian/patches/0010-Fix-handling-of-mmap-errors.patch | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/debian/patches/0010-Fix-handling-of-mmap-errors.patch b/debian/patches/0010-Fix-handling-of-mmap-errors.patch new file mode 100644 index 0000000..0c55cfe --- /dev/null +++ b/debian/patches/0010-Fix-handling-of-mmap-errors.patch @@ -0,0 +1,51 @@ +From: Daniel Veillard <veillard@redhat.com> +Date: Fri, 12 Jul 2013 12:08:40 +0800 +Subject: Fix handling of mmap errors + +https://bugzilla.gnome.org/show_bug.cgi?id=702320 + +as raised by Gaurav <ya1gaurav@gmail.com> +--- + xmllint.c | 13 +++++++++++-- + 1 file changed, 11 insertions(+), 2 deletions(-) + +diff --git a/xmllint.c b/xmllint.c +index 4d464e4..92e6b03 100644 +--- a/xmllint.c ++++ b/xmllint.c +@@ -1837,8 +1837,12 @@ static void streamFile(char *filename) { + if ((fd = open(filename, O_RDONLY)) < 0) + return; + base = mmap(NULL, info.st_size, PROT_READ, MAP_SHARED, fd, 0) ; +- if (base == (void *) MAP_FAILED) ++ if (base == (void *) MAP_FAILED) { ++ close(fd); ++ fprintf(stderr, "mmap failure for file %s\n", filename); ++ progresult = XMLLINT_ERR_RDFILE; + return; ++ } + + reader = xmlReaderForMemory(base, info.st_size, filename, + NULL, options); +@@ -2223,8 +2227,12 @@ static void parseAndPrintFile(char *filename, xmlParserCtxtPtr rectxt) { + if ((fd = open(filename, O_RDONLY)) < 0) + return; + base = mmap(NULL, info.st_size, PROT_READ, MAP_SHARED, fd, 0) ; +- if (base == (void *) MAP_FAILED) ++ if (base == (void *) MAP_FAILED) { ++ close(fd); ++ fprintf(stderr, "mmap failure for file %s\n", filename); ++ progresult = XMLLINT_ERR_RDFILE; + return; ++ } + + doc = htmlReadMemory((char *) base, info.st_size, filename, + NULL, options); +@@ -2339,6 +2347,7 @@ static void parseAndPrintFile(char *filename, xmlParserCtxtPtr rectxt) { + return; + base = mmap(NULL, info.st_size, PROT_READ, MAP_SHARED, fd, 0) ; + if (base == (void *) MAP_FAILED) { ++ close(fd); + fprintf(stderr, "mmap failure for file %s\n", filename); + progresult = XMLLINT_ERR_RDFILE; + return; |