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;

-- 


Reply via email to