raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c65782b15c0af7c25c5506cdf79cbbfa39604fec
commit c65782b15c0af7c25c5506cdf79cbbfa39604fec Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com> Date: Tue Apr 18 17:27:21 2017 +0900 ecore file - use eina_file_mkstmp to solve umask complaint this fixes coverity CID 1039614 --- src/lib/ecore_file/ecore_file.c | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/src/lib/ecore_file/ecore_file.c b/src/lib/ecore_file/ecore_file.c index 6e341ea..f5c15b6 100644 --- a/src/lib/ecore_file/ecore_file.c +++ b/src/lib/ecore_file/ecore_file.c @@ -474,6 +474,7 @@ ecore_file_mv(const char *src, const char *dst) if (is_reg) { char *dir; + Eina_Tmpstr *tmpstr = NULL; dir = ecore_file_dir_get(dst); // Since we can't directly rename, try to @@ -482,29 +483,40 @@ ecore_file_mv(const char *src, const char *dst) snprintf(buf, sizeof(buf), "%s/.%s.tmp.XXXXXX", dir, ecore_file_file_get(dst)); free(dir); - fd = mkstemp(buf); + fd = eina_file_mkstemp(buf, &tmpstr); if (fd < 0) goto FAIL; close(fd); // Copy to temp file - if (!ecore_file_cp(src, buf)) - goto FAIL; + if (!ecore_file_cp(src, tmpstr)) + { + eina_tmpstr_del(tmpstr); + goto FAIL; + } // Set file permissions of temp file to match src - if (chmod(buf, mode) == -1) goto FAIL; + if (chmod(buf, mode) == -1) + { + eina_tmpstr_del(tmpstr); + goto FAIL; + } // Try to atomically move temp file to dst - if (rename(buf, dst)) + if (rename(tmpstr, dst)) { // If we still cannot atomically move // do a normal copy and hope for the best. - if (!ecore_file_cp(buf, dst)) - goto FAIL; + if (!ecore_file_cp(tmpstr, dst)) + { + eina_tmpstr_del(tmpstr); + goto FAIL; + } } // Delete temporary file and src - ecore_file_unlink(buf); + ecore_file_unlink(tmpstr); ecore_file_unlink(src); + eina_tmpstr_del(tmpstr); goto PASS; } } --