Fix memory leak and remove the unused code 06/256006/3 accepted/tizen/unified/20210330.111258 submit/tizen/20210329.082152 submit/tizen/20210329.184123
authorMateusz Moscicki <m.moscicki2@partner.samsung.com>
Fri, 26 Mar 2021 08:58:19 +0000 (09:58 +0100)
committerMateusz Moscicki <m.moscicki2@partner.samsung.com>
Fri, 26 Mar 2021 14:17:03 +0000 (15:17 +0100)
Change-Id: Ic746786b2c76314d671a18d992a25451c564197f

src/dump_systemstate-service/dump_systemstate-service.c

index ba57db3..da234f0 100644 (file)
@@ -73,38 +73,6 @@ static void remove_timeout(void)
        _D("Remove loop timeout");
 }
 
-static char* join(int argc, char **argv, int offset)
-{
-       assert(argv);
-
-       if (offset <= argc)
-               return strdup("");
-
-       ssize_t length = 0;
-       for (int i = offset; i < argc; i++)
-               length += strlen(argv[i]) + 1;
-
-       char *result = malloc(length + 1);
-       if (result == NULL) {
-               _E("Out of memory");
-               return NULL;
-       }
-       char *pointer = result;
-
-       for (int i = offset; i < argc; i++) {
-               int printed = snprintf(pointer, strlen(argv[i]) + 2, "%s ", argv[i]);
-               if (printed < 0) {
-                       free(result);
-                       _E("Cannot concatenate strings: %m");
-                       return NULL;
-               }
-
-               pointer += printed;
-       }
-       result[length-1] = '\0';
-       return result;
-}
-
 char** split(const char *str, size_t *size)
 {
        assert(str);
@@ -203,7 +171,12 @@ static char** prepare_config_args(const char *path, char *args)
 {
        size_t argc = 0;
        char **argv = split(args, &argc);
-       return build_argv_array(path, argc, argv);
+       if (argv == NULL)
+               return NULL;
+
+       char **result = build_argv_array(path, argc, argv);
+       free_array(argv);
+       return result;
 }
 
 static char** prepare_args(struct extra_dump_item *item, const int dumpsys_argc, char **dumpsys_argv)