X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=liblttng-ust-ctl%2Fustctl.c;h=b612d2ce6e5819c4160bd4022cd20c366c082e4d;hb=cbef69018acdeb52d27529e80126b43f3733e233;hp=e285a2d24b7debc2159b760981c044e4663b7d24;hpb=44c72f10aa3cace72ffe40a0f9bb7aadb9c82dc8;p=lttng-ust.git diff --git a/liblttng-ust-ctl/ustctl.c b/liblttng-ust-ctl/ustctl.c index e285a2d2..b612d2ce 100644 --- a/liblttng-ust-ctl/ustctl.c +++ b/liblttng-ust-ctl/ustctl.c @@ -44,24 +44,34 @@ void init_object(struct lttng_ust_object_data *data) * If sock is negative, it means we don't have to notify the other side * (e.g. application has already vanished). */ -void ustctl_release_object(int sock, struct lttng_ust_object_data *data) +int ustctl_release_object(int sock, struct lttng_ust_object_data *data) { struct ustcomm_ust_msg lum; struct ustcomm_ust_reply lur; int ret; - if (data->shm_fd >= 0) - close(data->shm_fd); - if (data->wait_fd >= 0) - close(data->wait_fd); + if (data->shm_fd >= 0) { + ret = close(data->shm_fd); + if (ret < 0) { + return ret; + } + } + if (data->wait_fd >= 0) { + ret = close(data->wait_fd); + if (ret < 0) { + return ret; + } + } if (sock >= 0) { memset(&lum, 0, sizeof(lum)); lum.handle = data->handle; lum.cmd = LTTNG_UST_RELEASE; ret = ustcomm_send_app_cmd(sock, &lum, &lur); - assert(!ret); + if (ret < 0) { + return ret; + } } - free(data); + return 0; } /* @@ -161,7 +171,8 @@ int ustctl_open_metadata(int sock, int session_handle, return 0; error: - ustctl_release_object(sock, metadata_data); + (void) ustctl_release_object(sock, metadata_data); + free(metadata_data); return -EINVAL; } @@ -214,7 +225,8 @@ int ustctl_create_channel(int sock, int session_handle, return 0; error: - ustctl_release_object(sock, channel_data); + (void) ustctl_release_object(sock, channel_data); + free(channel_data); return -EINVAL; } @@ -265,7 +277,8 @@ int ustctl_create_stream(int sock, struct lttng_ust_object_data *channel_data, return ret; error: - ustctl_release_object(sock, stream_data); + (void) ustctl_release_object(sock, stream_data); + free(stream_data); return -EINVAL; } @@ -395,7 +408,7 @@ int ustctl_tracepoint_list(int sock) } int ustctl_tracepoint_list_get(int sock, int tp_list_handle, - char iter[LTTNG_UST_SYM_NAME_LEN]) + struct lttng_ust_tracepoint_iter *iter) { struct ustcomm_ust_msg lum; struct ustcomm_ust_reply lur; @@ -407,8 +420,11 @@ int ustctl_tracepoint_list_get(int sock, int tp_list_handle, ret = ustcomm_send_app_cmd(sock, &lum, &lur); if (ret) return ret; - DBG("received tracepoint list entry %s", lur.u.tracepoint_list_entry); - memcpy(iter, lur.u.tracepoint_list_entry, LTTNG_UST_SYM_NAME_LEN); + DBG("received tracepoint list entry name %s loglevel %s loglevel_value %lld", + lur.u.tracepoint.name, + lur.u.tracepoint.loglevel, + (unsigned long long) lur.u.tracepoint.loglevel_value); + memcpy(iter, &lur.u.tracepoint, sizeof(*iter)); return 0; }