Fix disable event
[lttng-tools.git] / liblttngctl / lttngctl.c
index b64ace2e6d80de0ce085791f698604e53f8eb523..4c4cf80d33d866916510d774910a4ca231fca156 100644 (file)
@@ -152,6 +152,10 @@ static int check_tracing_group(const char *grp_name)
 
        /* Alloc group list of the right size */
        grp_list = malloc(grp_list_size * sizeof(gid_t));
+       if (!grp_list) {
+               ret = -1;
+               goto end;
+       }
        grp_id = getgroups(grp_list_size, grp_list);
        if (grp_id < -1) {
                perror("getgroups");
@@ -488,7 +492,7 @@ int lttng_enable_event(struct lttng_handle *handle,
 {
        struct lttcomm_session_msg lsm;
 
-       if (!handle) {
+       if (!handle || ev == NULL) {
                return -1;
        }
 
@@ -502,12 +506,12 @@ int lttng_enable_event(struct lttng_handle *handle,
 
        copy_lttng_domain(&lsm.domain, &handle->domain);
 
-       if (ev) {
+       if (ev->name[0] != '\0') {
                lsm.cmd_type = LTTNG_ENABLE_EVENT;
-               memcpy(&lsm.u.enable.event, ev, sizeof(lsm.u.enable.event));
        } else {
                lsm.cmd_type = LTTNG_ENABLE_ALL_EVENT;
        }
+       memcpy(&lsm.u.enable.event, ev, sizeof(lsm.u.enable.event));
 
        copy_string(lsm.session.name, handle->session_name,
                        sizeof(lsm.session.name));
@@ -537,7 +541,7 @@ int lttng_disable_event(struct lttng_handle *handle, const char *name,
 
        copy_lttng_domain(&lsm.domain, &handle->domain);
 
-       if (name == NULL) {
+       if (name != NULL) {
                copy_string(lsm.u.disable.name, name, sizeof(lsm.u.disable.name));
                lsm.cmd_type = LTTNG_DISABLE_EVENT;
        } else {
This page took 0.024564 seconds and 5 git commands to generate.