/* iterate on all cpus */
for(j=0; j<trace->channels[i].n_cpus; j++) {
char *buf;
- asprintf(&buf, "%s_%d", trace->channels[i].channel_name, j);
+ if (asprintf(&buf, "%s_%d", trace->channels[i].channel_name, j) < 0) {
+ ERR("inform_consumer_daemon : asprintf failed (%s_%d)",
+ trace->channels[i].channel_name, j);
+ goto finish;
+ }
result = ustcomm_request_consumer(pid, buf);
if(result == -1) {
WARN("Failed to request collection for channel %s. Is the daemon available?", trace->channels[i].channel_name);
else if(result < 0) {
ERR("ust_buffers_get_subbuf: error: %s", strerror(-result));
}
- asprintf(&reply, "%s %ld", "OK", consumed_old);
+ if (asprintf(&reply, "%s %ld", "OK", consumed_old) < 0) {
+ ERR("process_blkd_consumer_act : asprintf failed (OK %ld)",
+ consumed_old);
+ return -1;
+ }
result = ustcomm_send_reply(&bc->server, reply, &bc->src);
if(result < 0) {
ERR("ustcomm_send_reply failed");
*cpu = atoi(sep+1);
}
- asprintf(channel, "%.*s", (int)(sep-channel_and_cpu), channel_and_cpu);
+ if (asprintf(channel, "%.*s", (int)(sep-channel_and_cpu), channel_and_cpu) < 0) {
+ ERR("seperate_channel_cpu : asprintf failed (%.*s)",
+ (int)(sep-channel_and_cpu), channel_and_cpu);
+ return;
+ }
}
static int do_cmd_get_shmid(const char *recvbuf, struct ustcomm_source *src)
// DBG("the shmid for the requested channel is %d", buf->shmid);
// DBG("the shmid for its buffer structure is %d", channel->buf_struct_shmids);
- asprintf(&reply, "%d %d", buf->shmid, channel->buf_struct_shmids[ch_cpu]);
+ if (asprintf(&reply, "%d %d", buf->shmid, channel->buf_struct_shmids[ch_cpu]) < 0) {
+ ERR("do_cmd_get_shmid : asprintf failed (%d %d)",
+ buf->shmid, channel->buf_struct_shmids[ch_cpu]);
+ retval = -1;
+ goto free_short_chan_name;
+ }
result = ustcomm_send_reply(&ustcomm_app.server, reply, src);
if(result) {
char *reply;
DBG("the n_subbufs for the requested channel is %d", channel->subbuf_cnt);
- asprintf(&reply, "%d", channel->subbuf_cnt);
+ if (asprintf(&reply, "%d", channel->subbuf_cnt) < 0) {
+ ERR("do_cmd_get_n_subbufs : asprintf failed (%d)",
+ channel->subbuf_cnt);
+ retval = -1;
+ goto free_short_chan_name;
+ }
result = ustcomm_send_reply(&ustcomm_app.server, reply, src);
if(result) {
char *reply;
DBG("the subbuf_size for the requested channel is %zd", channel->subbuf_size);
- asprintf(&reply, "%zd", channel->subbuf_size);
+ if (asprintf(&reply, "%zd", channel->subbuf_size) < 0) {
+ ERR("do_cmd_get_subbuf_size : asprintf failed (%zd)",
+ channel->subbuf_size);
+ retval = -1;
+ goto free_short_chan_name;
+ }
result = ustcomm_send_reply(&ustcomm_app.server, reply, src);
if(result) {
result = ust_buffers_put_subbuf(buf, consumed_old);
if(result < 0) {
WARN("ust_buffers_put_subbuf: error (subbuf=%s)", channel_and_cpu);
- asprintf(&reply, "%s", "ERROR");
+ if (asprintf(&reply, "%s", "ERROR") < 0) {
+ ERR("do_cmd_put_subbuffer : asprintf failed (ERROR)");
+ retval = -1;
+ goto unlock_traces;
+ }
}
else {
DBG("ust_buffers_put_subbuf: success (subbuf=%s)", channel_and_cpu);
- asprintf(&reply, "%s", "OK");
+ if (asprintf(&reply, "%s", "OK") < 0) {
+ ERR("do_cmd_put_subbuffer : asprintf failed (OK)");
+ retval = -1;
+ goto unlock_traces;
+ }
}
result = ustcomm_send_reply(&ustcomm_app.server, reply, src);
else if(nth_token_is(recvbuf, "get_pidunique", 0) == 1) {
char *reply;
- asprintf(&reply, "%lld", pidunique);
+ if (asprintf(&reply, "%lld", pidunique) < 0) {
+ ERR("process_client_cmd : asprintf failed (%lld)",
+ pidunique);
+ goto next_cmd;
+ }
result = ustcomm_send_reply(&ustcomm_app.server, reply, src);
if(result) {
else if(nth_token_is(recvbuf, "get_sock_path", 0) == 1) {
char *reply = getenv("UST_DAEMON_SOCKET");
if(!reply) {
- asprintf(&reply, "%s/%s", SOCK_DIR, "ustd");
+ if (asprintf(&reply, "%s/%s", SOCK_DIR, "ustd") < 0) {
+ ERR("process_client_cmd : asprintf failed (%s/ustd)",
+ SOCK_DIR);
+ goto next_cmd;
+ }
result = ustcomm_send_reply(&ustcomm_app.server, reply, src);
free(reply);
}
return USTCMD_ERR_ARG;
}
- asprintf(&cmd, "%s %s", cmd_str[state], mn);
+ if (asprintf(&cmd, "%s %s", cmd_str[state], mn) < 0) {
+ ERR("ustcmd_set_marker_state : asprintf failed (%s %s)",
+ cmd_str[state], mn);
+ return USTCMD_ERR_GEN;
+ }
result = ustcmd_send_cmd(cmd, pid, NULL);
if (result) {
char *cmd;
int result;
- asprintf(&cmd, "%s %s", "set_subbuf_size", channel_size);
+ if (asprintf(&cmd, "%s %s", "set_subbuf_size", channel_size) < 0) {
+ ERR("ustcmd_set_subbuf_size : asprintf failed (set_subbuf_size %s)",
+ channel_size);
+ return -1;
+ }
result = ustcmd_send_cmd(cmd, pid, NULL);
if (result != 1) {
char *cmd;
int result;
- asprintf(&cmd, "%s %s", "set_subbuf_num", channel_size);
+ if (asprintf(&cmd, "%s %s", "set_subbuf_num", channel_size) < 0) {
+ ERR("ustcmd_set_subbuf_num : asprintf failed (set_subbuf_num %s",
+ channel_size);
+ return -1;
+ }
result = ustcmd_send_cmd(cmd, pid, NULL);
if (result != 1) {
int result;
/* format: channel_cpu */
- asprintf(&cmd, "%s %s_0", "get_subbuf_size", channel);
+ if (asprintf(&cmd, "%s %s_0", "get_subbuf_size", channel) < 0) {
+ ERR("ustcmd_get_subbuf_size : asprintf failed (get_subbuf_size, %s_0",
+ channel);
+ return -1;
+ }
result = ustcmd_send_cmd(cmd, pid, &reply);
if (result) {
int result;
/* format: channel_cpu */
- asprintf(&cmd, "%s %s_0", "get_n_subbufs", channel);
+ if (asprintf(&cmd, "%s %s_0", "get_n_subbufs", channel) < 0) {
+ ERR("ustcmd_get_subbuf_num : asprintf failed (get_n_subbufs, %s_0",
+ channel);
+ return -1;
+ }
result = ustcmd_send_cmd(cmd, pid, &reply);
if (result) {
char *cmd;
int result;
- asprintf(&cmd, "%s %s", "set_sock_path", sock_path);
+ if (asprintf(&cmd, "%s %s", "set_sock_path", sock_path) < 0) {
+ ERR("ustcmd_set_sock_path : asprintf failed (set_sock_path, %s",
+ sock_path);
+ return -1;
+ }
result = ustcmd_send_cmd(cmd, pid, NULL);
if (result != 1) {
char *cmd, *reply;
int result;
- asprintf(&cmd, "%s", "get_sock_path");
+ if (asprintf(&cmd, "%s", "get_sock_path") < 0) {
+ ERR("ustcmd_get_sock_path : asprintf failed");
+ return USTCMD_ERR_GEN;
+ }
result = ustcmd_send_cmd(cmd, pid, &reply);
if (result != 1) {
return -1;
}
- asprintf(&msg, "collect %d %s", pid, channel);
+ if (asprintf(&msg, "collect %d %s", pid, channel) < 0) {
+ ERR("ustcomm_request_consumer : asprintf failed (collect %d/%s)",
+ pid, channel);
+ return -1;
+ }
/* don't signal it because it's the daemon */
result = ustcomm_connect_path(path, &conn, -1);
int retval = 0;
if(sock_path) {
- asprintf(&name, "%s", sock_path);
+ if (asprintf(&name, "%s", sock_path) < 0) {
+ ERR("ustcomm_init_ustd : asprintf failed (sock_path %s)",
+ sock_path);
+ return -1;
+ }
}
else {
int result;
return -1;
}
- asprintf(&name, "%s/%s", SOCK_DIR, "ustd");
+ if (asprintf(&name, "%s/%s", SOCK_DIR, "ustd") < 0) {
+ ERR("ustcomm_init_ustd : asprintf failed (%s/ustd)",
+ SOCK_DIR);
+ return -1;
+ }
}
handle->server.listen_fd = init_named_socket(name, &handle->server.socketpath);
retval = NULL;
}
- asprintf(&retval, "%.*s", (int)(end-start), start);
+ if (asprintf(&retval, "%.*s", (int)(end-start), start) < 0) {
+ ERR("nth_token : asprintf failed (%.*s)",
+ (int)(end-start), start);
+ return NULL;
+ }
return retval;
}
int retval;
int result;
- asprintf(&send_msg, "get_subbuffer %s", buf->name);
+ if (asprintf(&send_msg, "get_subbuffer %s", buf->name) < 0) {
+ ERR("get_subbuffer : asprintf failed (%s)",
+ buf->name);
+ retval = -1;
+ goto end;
+ }
result = ustcomm_send_request(buf->conn, send_msg, &received_msg);
if((result == -1 && (errno == ECONNRESET || errno == EPIPE)) || result == 0) {
DBG("app died while being traced");
int retval;
int result;
- asprintf(&send_msg, "put_subbuffer %s %ld", buf->name, buf->consumed_old);
+ if (asprintf(&send_msg, "put_subbuffer %s %ld", buf->name, buf->consumed_old) < 0) {
+ ERR("put_subbuffer : asprintf failed (%s %ld)",
+ buf->name, buf->consumed_old);
+ retval = -1;
+ goto end;
+ }
result = ustcomm_send_request(buf->conn, send_msg, &received_msg);
if(result < 0 && (errno == ECONNRESET || errno == EPIPE)) {
retval = PUT_SUBBUF_DIED;
}
/* get pidunique */
- asprintf(&send_msg, "get_pidunique");
+ if (asprintf(&send_msg, "get_pidunique") < 0) {
+ ERR("connect_buffer : asprintf failed (get_pidunique)");
+ return NULL;
+ }
result = ustcomm_send_request(buf->conn, send_msg, &received_msg);
free(send_msg);
if(result == -1) {
DBG("got pidunique %lld", buf->pidunique);
/* get shmid */
- asprintf(&send_msg, "get_shmid %s", buf->name);
+ if (asprintf(&send_msg, "get_shmid %s", buf->name) < 0) {
+ ERR("connect_buffer : asprintf failed (get_schmid %s)",
+ buf->name);
+ return NULL;
+ }
result = ustcomm_send_request(buf->conn, send_msg, &received_msg);
free(send_msg);
if(result == -1) {
DBG("got shmids %d %d", buf->shmid, buf->bufstruct_shmid);
/* get n_subbufs */
- asprintf(&send_msg, "get_n_subbufs %s", buf->name);
+ if (asprintf(&send_msg, "get_n_subbufs %s", buf->name) < 0) {
+ ERR("connect_buffer : asprintf failed (get_n_subbufs %s)",
+ buf->name);
+ return NULL;
+ }
result = ustcomm_send_request(buf->conn, send_msg, &received_msg);
free(send_msg);
if(result == -1) {
DBG("got n_subbufs %d", buf->n_subbufs);
/* get subbuf size */
- asprintf(&send_msg, "get_subbuf_size %s", buf->name);
+ if (asprintf(&send_msg, "get_subbuf_size %s", buf->name) < 0) {
+ ERR("connect_buffer : asprintf failed (get_subbuf_size %s)",
+ buf->name);
+ return NULL;
+ }
result = ustcomm_send_request(buf->conn, send_msg, &received_msg);
free(send_msg);
if(result == -1) {
usleep(100000);
}
- scanf("%*s");
+ if (scanf("%*s") == EOF)
+ PERROR("scanf failed");
ltt_trace_stop("auto");
ltt_trace_destroy("auto", 0);
DBG("TRACE STOPPED");
- scanf("%*s");
+ if (scanf("%*s") == EOF)
+ PERROR("scanf failed");
return 0;
}
trace_path = USTD_DEFAULT_TRACE_PATH;
}
- asprintf(&tmp, "%s/%u_%lld", trace_path, buf->pid, buf->pidunique);
+ if (asprintf(&tmp, "%s/%u_%lld", trace_path, buf->pid, buf->pidunique) < 0) {
+ ERR("on_open_buffer : asprintf failed (%s/%u_%lld)",
+ trace_path, buf->pid, buf->pidunique);
+ return 1;
+ }
result = create_dir_if_needed(tmp);
if(result == -1) {
ERR("could not create directory %s", tmp);
}
free(tmp);
- asprintf(&tmp, "%s/%u_%lld/%s", trace_path, buf->pid, buf->pidunique, buf->name);
+ if (asprintf(&tmp, "%s/%u_%lld/%s", trace_path, buf->pid, buf->pidunique, buf->name) < 0) {
+ ERR("on_open_buffer : asprintf failed (%s/%u_%lld/%s)",
+ trace_path, buf->pid, buf->pidunique, buf->name);
+ return 1;
+ }
result = fd = open(tmp, O_WRONLY | O_CREAT | O_TRUNC | O_EXCL, 00600);
if(result == -1) {
PERROR("open");