efl: check config values before passing to non-null function
authorMike Blumenkrantz <zmike@samsung.com>
Thu, 12 Mar 2020 16:50:26 +0000 (12:50 -0400)
committerJongmin Lee <jm105.lee@samsung.com>
Fri, 13 Mar 2020 00:19:05 +0000 (09:19 +0900)
if these config values don't exist, we should return the inlined defaults

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11499

src/lib/efl/Efl.h

index 81e2748..ec6f168 100644 (file)
@@ -253,7 +253,7 @@ efl_config_bool_get(const Efl_Config *obj, const char * name)
 {
    Eina_Value *v = efl_config_get(obj, name);
    Eina_Bool b = 0;
-   if (eina_value_type_get(v) == EINA_VALUE_TYPE_UCHAR)
+   if (v && eina_value_type_get(v) == EINA_VALUE_TYPE_UCHAR)
      eina_value_get(v, &b);
    eina_value_free(v);
    return b;
@@ -275,7 +275,7 @@ efl_config_int_get(const Efl_Config *obj, const char * name)
 {
    Eina_Value *v = efl_config_get(obj, name);
    int b = 0;
-   if (eina_value_type_get(v) == EINA_VALUE_TYPE_INT)
+   if (v && eina_value_type_get(v) == EINA_VALUE_TYPE_INT)
      eina_value_get(v, &b);
    eina_value_free(v);
    return b;
@@ -297,7 +297,7 @@ efl_config_double_get(const Efl_Config *obj, const char * name)
 {
    Eina_Value *v = efl_config_get(obj, name);
    double b = 0;
-   if (eina_value_type_get(v) == EINA_VALUE_TYPE_DOUBLE)
+   if (v && eina_value_type_get(v) == EINA_VALUE_TYPE_DOUBLE)
      eina_value_get(v, &b);
    eina_value_free(v);
    return b;
@@ -319,7 +319,7 @@ efl_config_string_get(const Efl_Config *obj, const char *name)
 {
    Eina_Value *v = efl_config_get(obj, name);
    Eina_Stringshare *s = 0;
-   if (eina_value_type_get(v) == EINA_VALUE_TYPE_STRING)
+   if (v && eina_value_type_get(v) == EINA_VALUE_TYPE_STRING)
      {
         const char *b = 0;
         eina_value_get(v, &b);