bool send_fd = false;
unsigned int free_filter_expression = 0;
struct filter_parser_ctx *ctx = NULL;
+
+ memset(&send_buffer, 0, sizeof(send_buffer));
+
/*
* Cast as non-const since we may replace the filter expression
* by a dynamically allocated string. Otherwise, the original
goto end;
}
+ if (!cmd_header) {
+ ret = -LTTNG_ERR_UNK;
+ goto end;
+ }
+
/* Set number of events and free command header */
nb_events = cmd_header->nb_events;
if (nb_events > INT_MAX) {
probe_storage_req = ret;
comm_ext_at += ext_comm->userspace_probe_location_len;
- ret = 0;
}
storage_req += sizeof(struct lttng_event_extended);
ext_comm->nb_exclusions * LTTNG_SYMBOL_NAME_LEN);
if (ret) {
ret = -LTTNG_ERR_NOMEM;
+ goto free_dynamic_buffer;
}
comm_ext_at += ext_comm->nb_exclusions * LTTNG_SYMBOL_NAME_LEN;
}
int enabled = 1;
struct lttcomm_session_msg lsm;
size_t nr_pids;
- int32_t *pids;
+ int32_t *pids = NULL;
if (handle == NULL) {
return -LTTNG_ERR_INVALID;
return ret;
}
nr_pids = ret / sizeof(int32_t);
+ if (nr_pids > 0 && !pids) {
+ return -LTTNG_ERR_UNK;
+ }
if (nr_pids == 1 && pids[0] == -1) {
free(pids);
pids = NULL;