Fix svace issues 88/255788/3
authorMateusz Moscicki <m.moscicki2@partner.samsung.com>
Tue, 23 Mar 2021 14:32:43 +0000 (15:32 +0100)
committerMateusz Moscicki <m.moscicki2@partner.samsung.com>
Wed, 24 Mar 2021 13:19:58 +0000 (14:19 +0100)
Change-Id: Ic4935bd22bccaa3f07f7cbd57055f5f7bfe58ff1

src/bugreport-service/diagnostics/diagnostics_dump.c
src/crash-manager/crash-manager.c
src/dump_systemstate-service/dump_systemstate-service.c
src/shared/util.c

index f1fb212..4dc2c57 100644 (file)
@@ -73,7 +73,12 @@ static bool get_reports_list(const char *path, struct report_file **list, size_t
                        return false;
                }
 
-               *list = realloc(*list, sizeof(struct report_file)*(*list_count + 1));
+               struct report_file *tmp_list = realloc(*list, sizeof(struct report_file)*(*list_count + 1));
+               if (tmp_list == NULL) {
+                       _E("Out of memory");
+                       return false;
+               }
+               *list = tmp_list;
                (*list)[*list_count].file_name = strdup(ep->d_name);
                (*list)[*list_count].file_path = strdup(file_path);
                (*list)[*list_count].ctime = st.st_ctim;
@@ -324,7 +329,7 @@ static void diagnostics_callback(diagnostics_data_h data, char **params, int par
        if (!diagnostics_call_parse_options(fd, params, params_size, &dco))
                return;
 
-       if ((dco.last_set && (dco.from_set || dco.from_set)) || (dco.to_set && !dco.from_set)) {
+       if ((dco.last_set && (dco.from_set || dco.to_set)) || (dco.to_set && !dco.from_set)) {
                _E("Incorrect parameters set");
                dprintf(fd, "Incorrect parameters set.\n");
                return;
index beeb59d..f37a0ee 100644 (file)
@@ -1163,7 +1163,8 @@ static bool move_dump_data(const char *from_path, const struct crash_info *cinfo
        if ((lock_fd = lock_dir(crash_dump_path, false)) < 0)
                return false;
        if (!rename(from_path, cinfo->result_path)) {
-               chmod(cinfo->result_path, DEFAULT_REPORT_PERM);
+               if (chmod(cinfo->result_path, DEFAULT_REPORT_PERM) != 0)
+                       _E("Error changing permission for %s to %d: %m", cinfo->result_path, DEFAULT_REPORT_PERM);
                clean_dump();
        } else {
                _E("Failed to move %s to %s", from_path, cinfo->result_path);
index 6635429..ba57db3 100644 (file)
@@ -116,7 +116,8 @@ char** split(const char *str, size_t *size)
                return NULL;
        }
 
-       char *chunk = strtok(str_tmp, " ");
+       char *tmpptr = NULL;
+       char *chunk = strtok_r(str_tmp, " ", &tmpptr);
        *size = 0;
 
        while (chunk != NULL) {
@@ -136,7 +137,7 @@ char** split(const char *str, size_t *size)
 
                result = result_tmp;
                result[(*size)++] = chunk_copy;
-               chunk = strtok(NULL, " ");
+               chunk = strtok_r(NULL, " ", &tmpptr);
        }
 
        char **result_tmp = realloc(result, (*size + 1) * sizeof(char *));
index 59644b2..0606045 100644 (file)
@@ -207,7 +207,8 @@ bool make_dir(const char *path, int mode)
                return false;
        }
 
-       chmod(path, mode); // Fixup permissions for directories created with bad umask
+       if (chmod(path, mode) != 0) // Fixup permissions for directories created with bad umask
+               _E("Error changing permission for %s to %d: %m", path, mode);
 
        if (r >= 0)
                return true;