_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);
{
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)