projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: Add missing free() in spawn_viewer
[lttng-tools.git]
/
src
/
bin
/
lttng
/
commands
/
view.c
diff --git
a/src/bin/lttng/commands/view.c
b/src/bin/lttng/commands/view.c
index de7211718dcd21b7c1eea9b093da26aa4dbd23f1..66e987d194ac4814cf44ae8ecd5d9b153040deb3 100644
(file)
--- a/
src/bin/lttng/commands/view.c
+++ b/
src/bin/lttng/commands/view.c
@@
-159,6
+159,9
@@
static char **alloc_argv_from_user_opts(char *opts, const char *trace_path)
token = strtok(opts, " ");
while (token != NULL) {
argv[i] = strdup(token);
token = strtok(opts, " ");
while (token != NULL) {
argv[i] = strdup(token);
+ if (argv[i] == NULL) {
+ goto error;
+ }
token = strtok(NULL, " ");
i++;
}
token = strtok(NULL, " ");
i++;
}
@@
-169,6
+172,13
@@
static char **alloc_argv_from_user_opts(char *opts, const char *trace_path)
return argv;
error:
return argv;
error:
+ if (argv) {
+ for (i = 0; i < num_opts + 2; i++) {
+ free(argv[i]);
+ }
+ free(argv);
+ }
+
return NULL;
}
return NULL;
}
@@
-271,7
+281,7
@@
static int spawn_viewer(const char *trace_path)
break;
}
break;
}
- if (argv == NULL) {
+ if (argv == NULL
|| !viewer_bin
) {
ret = CMD_FATAL;
goto error;
}
ret = CMD_FATAL;
goto error;
}
@@
-285,12
+295,12
@@
static int spawn_viewer(const char *trace_path)
} else {
PERROR("exec: %s", viewer_bin);
}
} else {
PERROR("exec: %s", viewer_bin);
}
- free(argv);
ret = CMD_FATAL;
goto error;
}
error:
ret = CMD_FATAL;
goto error;
}
error:
+ free(argv);
return ret;
}
return ret;
}
This page took
0.025094 seconds
and
4
git commands to generate.