netstar pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=300831cb3cbc95b733bdaf4a17617007631a1589
commit 300831cb3cbc95b733bdaf4a17617007631a1589 Author: Al Poole <nets...@gmail.com> Date: Sat Mar 3 13:13:05 2018 +0000 efreet_xml: make sure we unmap the right pointer. Seems Linux would munmap a lump of coal without failing. Make sure the pointers match. Again bogus unmap not detected by valgrind and not failing. @fix T5949 --- src/lib/efreet/efreet_xml.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/lib/efreet/efreet_xml.c b/src/lib/efreet/efreet_xml.c index 05261b2a4a..4f4cd2fea8 100644 --- a/src/lib/efreet/efreet_xml.c +++ b/src/lib/efreet/efreet_xml.c @@ -86,7 +86,7 @@ efreet_xml_new(const char *file) { Efreet_Xml *xml = NULL; int size, fd = -1; - char *data = MAP_FAILED; + char *tmp, *data = MAP_FAILED; struct stat st; int error = 0; @@ -109,11 +109,12 @@ efreet_xml_new(const char *file) data = mmap(NULL, st.st_size, PROT_READ, MAP_SHARED, fd, 0); if (data == MAP_FAILED) goto efreet_error; + tmp = data; + error = 0; size = st.st_size; - xml = efreet_xml_parse(&data, &size, &error); + xml = efreet_xml_parse(&tmp, &size, &error); if (!xml || error) goto efreet_error; - munmap(data, st.st_size); close(fd); return xml; --