raster pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=df7873bd6fd136ebc3d1bda2b854e53c57e84590
commit df7873bd6fd136ebc3d1bda2b854e53c57e84590 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 c2c7f8f4aa..608efb0f18 100644 --- a/src/lib/eina/eina_file.c +++ b/src/lib/eina/eina_file.c @@ -297,7 +297,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 91036398cc..27e92bac5b 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; --