netstar pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a538f478545e094ae4f158aaf6293ccef4bfb99d
commit a538f478545e094ae4f158aaf6293ccef4bfb99d Author: Al Poole <nets...@gmail.com> Date: Thu Nov 30 13:57:25 2017 +0000 eina_file: make sure we use a stringshare when virtualized. As the filename is now a stringshare, also make sure virtual files use stringshares for the filename! Also when unmapping we still need to test whether it is copied or not as unmap will break on less tolerant architectures. @fix T6449 --- src/lib/eina/eina_file.c | 2 +- src/lib/eina/eina_file_common.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/eina/eina_file.c b/src/lib/eina/eina_file.c index d56612fc75..bf02410ff5 100644 --- a/src/lib/eina/eina_file.c +++ b/src/lib/eina/eina_file.c @@ -300,7 +300,7 @@ eina_file_real_close(Eina_File *file) if (file->fd != -1) { - if (file->global_map != MAP_FAILED) + if (!file->copied && file->global_map != MAP_FAILED) munmap(file->global_map, file->length); close(file->fd); } diff --git a/src/lib/eina/eina_file_common.c b/src/lib/eina/eina_file_common.c index edebaed326..1c53226a35 100644 --- a/src/lib/eina/eina_file_common.c +++ b/src/lib/eina/eina_file_common.c @@ -422,9 +422,9 @@ eina_file_virtualize(const char *virtual_name, const void *data, unsigned long l EINA_MAGIC_SET(file, EINA_FILE_MAGIC); file->filename = (char *)(file + 1); if (virtual_name) - strcpy((char *)file->filename, virtual_name); + file->filename = eina_stringshare_add(virtual_name); else - sprintf((char *)file->filename, tmpname, ti); + file->filename = eina_stringshare_printf(tmpname, ti); eina_lock_recursive_new(&file->lock); file->mtime = ti / 1000; --