projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: lttng-ctl: lttng_list_sessions: initialize out_sessions to NULL when returning 0
[lttng-tools.git]
/
src
/
lib
/
lttng-ctl
/
lttng-ctl.c
diff --git
a/src/lib/lttng-ctl/lttng-ctl.c
b/src/lib/lttng-ctl/lttng-ctl.c
index 7ad1fe13291b8f40599ad60ce197bbbfc5c6dae5..64fca28d6769dee56238a83feadb95b7aaae8bc1 100644
(file)
--- a/
src/lib/lttng-ctl/lttng-ctl.c
+++ b/
src/lib/lttng-ctl/lttng-ctl.c
@@
-2102,6
+2102,12
@@
int lttng_list_sessions(struct lttng_session **out_sessions)
memset(&lsm, 0, sizeof(lsm));
lsm.cmd_type = LTTNG_LIST_SESSIONS;
memset(&lsm, 0, sizeof(lsm));
lsm.cmd_type = LTTNG_LIST_SESSIONS;
+ /*
+ * Initialize out_sessions to NULL so it is initialized when
+ * lttng_list_sessions returns 0, thus allowing *out_sessions to
+ * be subsequently freed.
+ */
+ *out_sessions = NULL;
ret = lttng_ctl_ask_sessiond(&lsm, (void**) &sessions);
if (ret <= 0) {
goto end;
ret = lttng_ctl_ask_sessiond(&lsm, (void**) &sessions);
if (ret <= 0) {
goto end;
@@
-2114,7
+2120,6
@@
int lttng_list_sessions(struct lttng_session **out_sessions)
if (ret % session_size) {
ret = -LTTNG_ERR_UNK;
free(sessions);
if (ret % session_size) {
ret = -LTTNG_ERR_UNK;
free(sessions);
- *out_sessions = NULL;
goto end;
}
session_count = (size_t) ret / session_size;
goto end;
}
session_count = (size_t) ret / session_size;
@@
-2618,14
+2623,19
@@
end:
*/
int lttng_set_tracing_group(const char *name)
{
*/
int lttng_set_tracing_group(const char *name)
{
+ char *new_group;
if (name == NULL) {
return -LTTNG_ERR_INVALID;
}
if (name == NULL) {
return -LTTNG_ERR_INVALID;
}
- if (asprintf(&
tracing
_group, "%s", name) < 0) {
+ if (asprintf(&
new
_group, "%s", name) < 0) {
return -LTTNG_ERR_FATAL;
}
return -LTTNG_ERR_FATAL;
}
+ free(tracing_group);
+ tracing_group = new_group;
+ new_group = NULL;
+
return 0;
}
return 0;
}
This page took
0.027314 seconds
and
4
git commands to generate.