projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix memleak in lttng list.c
[lttng-tools.git]
/
src
/
bin
/
lttng
/
commands
/
list.c
diff --git
a/src/bin/lttng/commands/list.c
b/src/bin/lttng/commands/list.c
index 3bac86ecdcd93220653c4119111dc542527d4a49..6040d008d09a7b5f55f06dfdb05f7eb42981bf53 100644
(file)
--- a/
src/bin/lttng/commands/list.c
+++ b/
src/bin/lttng/commands/list.c
@@
-196,11
+196,10
@@
static void print_events(struct lttng_event *event)
switch (event->type) {
case LTTNG_EVENT_TRACEPOINT:
{
switch (event->type) {
case LTTNG_EVENT_TRACEPOINT:
{
- MSG("%s%s%s%s%
d%
s (type: tracepoint)%s", indent6,
+ MSG("%s%s%s%s%s (type: tracepoint)%s", indent6,
event->name,
loglevel_string_pre(event->loglevel),
loglevel_string(event->loglevel),
event->name,
loglevel_string_pre(event->loglevel),
loglevel_string(event->loglevel),
- event->loglevel,
loglevel_string_post(event->loglevel),
enabled_string(event->enabled));
break;
loglevel_string_post(event->loglevel),
enabled_string(event->enabled));
break;
@@
-247,6
+246,8
@@
static int list_ust_events(void)
struct lttng_event *event_list;
pid_t cur_pid = 0;
struct lttng_event *event_list;
pid_t cur_pid = 0;
+ memset(&domain, 0, sizeof(domain));
+
DBG("Getting UST tracing events");
domain.type = LTTNG_DOMAIN_UST;
DBG("Getting UST tracing events");
domain.type = LTTNG_DOMAIN_UST;
@@
-259,6
+260,7
@@
static int list_ust_events(void)
size = lttng_list_tracepoints(handle, &event_list);
if (size < 0) {
ERR("Unable to list UST events");
size = lttng_list_tracepoints(handle, &event_list);
if (size < 0) {
ERR("Unable to list UST events");
+ lttng_destroy_handle(handle);
return size;
}
return size;
}
@@
-279,10
+281,12
@@
static int list_ust_events(void)
MSG("");
free(event_list);
MSG("");
free(event_list);
+ lttng_destroy_handle(handle);
return CMD_SUCCESS;
error:
return CMD_SUCCESS;
error:
+ lttng_destroy_handle(handle);
return -1;
}
return -1;
}
@@
-296,6
+300,8
@@
static int list_kernel_events(void)
struct lttng_handle *handle;
struct lttng_event *event_list;
struct lttng_handle *handle;
struct lttng_event *event_list;
+ memset(&domain, 0, sizeof(domain));
+
DBG("Getting kernel tracing events");
domain.type = LTTNG_DOMAIN_KERNEL;
DBG("Getting kernel tracing events");
domain.type = LTTNG_DOMAIN_KERNEL;
@@
-308,6
+314,7
@@
static int list_kernel_events(void)
size = lttng_list_tracepoints(handle, &event_list);
if (size < 0) {
ERR("Unable to list kernel events");
size = lttng_list_tracepoints(handle, &event_list);
if (size < 0) {
ERR("Unable to list kernel events");
+ lttng_destroy_handle(handle);
return size;
}
return size;
}
@@
-321,9
+328,11
@@
static int list_kernel_events(void)
free(event_list);
free(event_list);
+ lttng_destroy_handle(handle);
return CMD_SUCCESS;
error:
return CMD_SUCCESS;
error:
+ lttng_destroy_handle(handle);
return -1;
}
return -1;
}
@@
-480,7
+489,8
@@
static int list_sessions(const char *session_name)
continue;
}
continue;
}
- MSG(" %d) %s (%s)%s", i + 1, sessions[i].name, sessions[i].path, active_string(sessions[i].enabled));
+ MSG(" %d) %s (%s)%s", i + 1, sessions[i].name, sessions[i].path,
+ active_string(sessions[i].enabled));
if (session_found) {
break;
if (session_found) {
break;
@@
-490,7
+500,9
@@
static int list_sessions(const char *session_name)
free(sessions);
if (!session_found && session_name != NULL) {
free(sessions);
if (!session_found && session_name != NULL) {
- ERR("Session %s not found", session_name);
+ ERR("Session '%s' not found", session_name);
+ ret = CMD_ERROR;
+ goto error;
}
if (session_name == NULL) {
}
if (session_name == NULL) {
@@
-554,6
+566,8
@@
int cmd_list(int argc, const char **argv)
struct lttng_domain domain;
struct lttng_domain *domains = NULL;
struct lttng_domain domain;
struct lttng_domain *domains = NULL;
+ memset(&domain, 0, sizeof(domain));
+
if (argc < 1) {
usage(stderr);
ret = CMD_ERROR;
if (argc < 1) {
usage(stderr);
ret = CMD_ERROR;
@@
-590,6
+604,10
@@
int cmd_list(int argc, const char **argv)
} else if (opt_userspace) {
DBG2("Listing userspace global domain");
domain.type = LTTNG_DOMAIN_UST;
} else if (opt_userspace) {
DBG2("Listing userspace global domain");
domain.type = LTTNG_DOMAIN_UST;
+ } else {
+ usage(stderr);
+ ret = CMD_UNDEFINED;
+ goto end;
}
handle = lttng_create_handle(session_name, &domain);
}
handle = lttng_create_handle(session_name, &domain);
@@
-601,7
+619,7
@@
int cmd_list(int argc, const char **argv)
if (session_name == NULL) {
if (!opt_kernel && !opt_userspace) {
ret = list_sessions(NULL);
if (session_name == NULL) {
if (!opt_kernel && !opt_userspace) {
ret = list_sessions(NULL);
- if (ret
<
0) {
+ if (ret
!=
0) {
goto end;
}
}
goto end;
}
}
@@
-620,7
+638,7
@@
int cmd_list(int argc, const char **argv)
} else {
/* List session attributes */
ret = list_sessions(session_name);
} else {
/* List session attributes */
ret = list_sessions(session_name);
- if (ret
<
0) {
+ if (ret
!=
0) {
goto end;
}
goto end;
}
This page took
0.028751 seconds
and
4
git commands to generate.