From 286252b18ae24d6956cba95d4426ad7a0dc1c102 Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Thu, 15 Sep 2011 13:57:27 +0000 Subject: [PATCH] eina: use eina safety check in eina_file.c. SVN revision: 63409 --- legacy/eina/src/lib/eina_file.c | 40 ++++++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/legacy/eina/src/lib/eina_file.c b/legacy/eina/src/lib/eina_file.c index fd76dd1..2c7a6dc 100644 --- a/legacy/eina/src/lib/eina_file.c +++ b/legacy/eina/src/lib/eina_file.c @@ -643,8 +643,7 @@ eina_file_ls(const char *dir) Eina_File_Iterator *it; size_t length; - if (!dir) - return NULL; + EINA_SAFETY_ON_NULL_RETURN_VAL(dir, NULL); length = strlen(dir); if (length < 1) @@ -684,8 +683,7 @@ eina_file_direct_ls(const char *dir) Eina_File_Direct_Iterator *it; size_t length; - if (!dir) - return NULL; + EINA_SAFETY_ON_NULL_RETURN_VAL(dir, NULL); length = strlen(dir); if (length < 1) @@ -734,8 +732,7 @@ eina_file_stat_ls(const char *dir) Eina_File_Direct_Iterator *it; size_t length; - if (!dir) - return NULL; + EINA_SAFETY_ON_NULL_RETURN_VAL(dir, NULL); length = strlen(dir); if (length < 1) @@ -784,10 +781,9 @@ eina_xattr_ls(const char *file) Eina_Xattr_Iterator *it; ssize_t length; -#ifdef HAVE_XATTR - if (!file) - return NULL; + EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL); +#ifdef HAVE_XATTR length = listxattr(file, NULL, 0); if (length <= 0) return NULL; @@ -820,7 +816,10 @@ eina_xattr_get(const char *file, const char *attribute, ssize_t *size) void *ret = NULL; ssize_t tmp; - if (!size || !file || !attribute) return NULL; + EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL); + EINA_SAFETY_ON_NULL_RETURN_VAL(attribute, NULL); + EINA_SAFETY_ON_TRUE_RETURN_VAL(!size, NULL); + *size = getxattr(file, attribute, NULL, 0); /* Size should be less than 2MB (already huge in my opinion) */ if (!(*size > 0 && *size < 2 * 1024 * 1024)) @@ -846,8 +845,10 @@ eina_xattr_set(const char *file, const char *attribute, const void *data, ssize_ { int iflags; - if (!file || !attribute || !data || length <= 0 || length > 2 * 1024 * 1024) - return EINA_FALSE; + EINA_SAFETY_ON_NULL_RETURN_VAL(file, EINA_FALSE); + EINA_SAFETY_ON_NULL_RETURN_VAL(attribute, EINA_FALSE); + EINA_SAFETY_ON_NULL_RETURN_VAL(data, EINA_FALSE); + EINA_SAFETY_ON_TRUE_RETURN_VAL(!(length > 0 && length < 2 * 1024 * 1024), EINA_FALSE); switch (flags) { @@ -872,6 +873,8 @@ eina_file_open(const char *filename, Eina_Bool shared) int fd; int flags; + EINA_SAFETY_ON_NULL_RETURN_VAL(filename, NULL); + /* FIXME: always open absolute path (need to fix filename according to current directory) @@ -959,7 +962,8 @@ eina_file_open(const char *filename, Eina_Bool shared) EAPI void eina_file_close(Eina_File *file) { - if (!file) return; + EINA_SAFETY_ON_NULL_RETURN(file); + eina_lock_take(&file->lock); file->refcount--; eina_lock_release(&file->lock); @@ -971,21 +975,21 @@ eina_file_close(Eina_File *file) EAPI size_t eina_file_size_get(Eina_File *file) { - if (!file) return 0; + EINA_SAFETY_ON_NULL_RETURN_VAL(file, 0); return file->length; } EAPI time_t eina_file_mtime_get(Eina_File *file) { - if (!file) return 0; + EINA_SAFETY_ON_NULL_RETURN_VAL(file, 0); return file->mtime; } EAPI const char * eina_file_filename_get(Eina_File *file) { - if (!file) return NULL; + EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL); return file->filename; } @@ -995,6 +999,8 @@ eina_file_map_all(Eina_File *file, Eina_File_Populate rule) int flags = MAP_SHARED; void *ret = NULL; + EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL); + // bsd people will lack this feature #ifdef MAP_POPULATE if (rule == EINA_FILE_POPULATE) flags |= MAP_POPULATE; @@ -1087,6 +1093,8 @@ eina_file_map_new(Eina_File *file, Eina_File_Populate rule, EAPI void eina_file_map_free(Eina_File *file, void *map) { + EINA_SAFETY_ON_NULL_RETURN(file); + eina_lock_take(&file->lock); if (file->global_map == map) -- 2.7.4