e_utils: added e_util_env_get for sanitizing string of enviroment value
authorGwanglim Lee <gl77.lee@samsung.com>
Tue, 5 Dec 2017 11:41:44 +0000 (20:41 +0900)
committerGwanglim Lee <gl77.lee@samsung.com>
Wed, 6 Dec 2017 02:09:04 +0000 (11:09 +0900)
Change-Id: I7aaae930c746a31fe5d004e40211204a7f269511

src/bin/e_utils.c
src/bin/e_utils.h

index b41dd3c88b8997560cdf371e8608d72f3bfda567..0cede800d8a23e124da8842787602ec116af5fd0 100644 (file)
@@ -51,6 +51,25 @@ e_util_env_set(const char *var, const char *val)
      }
 }
 
+/* Utility function of getenv to make sure that environment value string
+ * is terminated with NULL.
+ *
+ * NOTE: return string has to be freed by caller after use.
+ */
+E_API char *
+e_util_env_get(const char *name)
+{
+   if (!name) return NULL;
+
+   char *val = getenv(name);
+   if (!val) return NULL;
+
+   /* Using strdup for sanitizing
+    * And it assumes that all enviroment value strings are terminated with NULL.
+    */
+   return strdup(val);
+}
+
 E_API int
 e_util_glob_match(const char *str, const char *pattern)
 {
@@ -1182,4 +1201,4 @@ e_util_file_realpath_check(const char* path, Eina_Bool del_link)
      free(real_path);
 
    return EINA_TRUE;
-}
\ No newline at end of file
+}
index 3d86caebcb516972c3db4f587c6d2183c10740c7..0e2c28a94149e5407f59cd395cc18eac7017dc31 100644 (file)
@@ -23,6 +23,7 @@
 
 E_API void         e_util_wakeup(void);
 E_API void         e_util_env_set(const char *var, const char *val);
+E_API char        *e_util_env_get(const char *name);
 E_API int          e_util_glob_match(const char *str, const char *glob);
 E_API int          e_util_glob_case_match(const char *str, const char *glob);
 E_API int          e_util_strcasecmp(const char *s1, const char *s2);