1.Limit the max length of Network connection profile
[apps/core/preloaded/settings.git] / setting-common / src / setting-cfg.c
index 6078b96..490830c 100755 (executable)
@@ -664,39 +664,23 @@ bool is_ug_installed_by_ug_args(void *data)
        char* ug_args = data;
        char *ug_name = get_ug_path_from_ug_args(ug_args);
 
-       char ug_file_opt[PATH_MAX];
-       if (snprintf(ug_file_opt, PATH_MAX, "%s/libug-%s.so", SETTING_UG_PATH, ug_name) < 0)
-               return false;
-
+       //1.first do exist-checking in /opt/ug/lib
+       char ug_file[PATH_MAX + 1];
+       snprintf(ug_file, PATH_MAX, "%s/libug-%s.so", SETTING_UG_PATH, ug_name);
        struct stat st;
-       bool result_opt = false;
-
-       if(stat(ug_file_opt, &st) == 0) {
-               result_opt = true;
-       } else {
-               SETTING_TRACE_ERROR(" %s is *NOT* present\n", ug_file_opt);
-               result_opt = false;
-       }
-
-       //-------------------------------------------------------------------------------------
-       char ug_file_usr[PATH_MAX];
-       bool result_usr = false;
-       if (snprintf(ug_file_usr, PATH_MAX, "%s/libug-%s.so", SETTING_UG_PATH_USR, ug_name) < 0)
-               return false;
-
-       if(stat(ug_file_usr, &st) == 0) {
-               result_usr = true;
-       } else {
-               SETTING_TRACE_ERROR(" %s is *NOT* present\n", ug_file_usr);
-               result_usr = false;
+       if(stat(ug_file, &st) != 0) { 
+
+               //2.if it does not exit in /opt/ug/lib, then do exist-checking in /usr/ug/lib
+               memset(ug_file, 0x00, PATH_MAX + 1);
+               snprintf(ug_file, PATH_MAX, "%s/libug-%s.so", SETTING_UG_PATH_USR, ug_name);
+               if(stat(ug_file, &st) != 0) {
+                       //both not exist,skip it
+                       SETTING_TRACE_ERROR(" libug-%s.so is *NOT* present, so skip it..\n", ug_name);
+                       return FALSE;
+               }
        }
 
-       // false  & false --> false
-       // true   & false --> true
-       // false  & true  --> true
-       // true   &  true  --> true
-
-       return (result_usr || result_opt);
+       return TRUE;
 }
 
 /*other relative function*/