diff options
author | Slavomir Kaslev <kaslevs@vmware.com> | 2019-03-22 18:26:35 +0200 |
---|---|---|
committer | Steven Rostedt (VMware) <rostedt@goodmis.org> | 2019-03-22 15:14:11 -0400 |
commit | 5276e834fa5eb3bc7f4b2e92114a151a2a1efdc6 (patch) | |
tree | 47d62569c25e7c206eda7cfe6183314443a8989c | |
parent | 5b95455cc170429ecedded8b62c51e4d4a50bc0e (diff) | |
download | trace-cmd-5276e834fa5eb3bc7f4b2e92114a151a2a1efdc6.tar.gz |
trace-cmd: Change tracecmd_msg's buf member type to char *
Now that all protocol V3 messages (besides SEND_DATA) use the buffer for text,
it makes sense to have it declared as such and drop a few casts.
This also takes care of undefined behavior caused by void pointer arithmetic in
tracecmd_msg_data_send()/tracecmd_msg_read_data().
Link: http://lore.kernel.org/linux-trace-devel/20190322162635.30689-1-kaslevs@vmware.com
Signed-off-by: Slavomir Kaslev <kaslevs@vmware.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
-rw-r--r-- | tracecmd/trace-msg.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/tracecmd/trace-msg.c b/tracecmd/trace-msg.c index 8c1c2bfc..e2dd1881 100644 --- a/tracecmd/trace-msg.c +++ b/tracecmd/trace-msg.c @@ -104,7 +104,7 @@ struct tracecmd_msg { struct tracecmd_msg_tinit tinit; struct tracecmd_msg_rinit rinit; }; - void *buf; + char *buf; } __attribute__((packed)); static inline int msg_buf_len(struct tracecmd_msg *msg) @@ -436,7 +436,7 @@ int tracecmd_msg_send_init_data(struct tracecmd_msg_handle *msg_handle, goto error; } - if (((char *)msg.buf)[buf_len-1] != '\0') { + if (msg.buf[buf_len-1] != '\0') { ret = -EINVAL; goto error; } @@ -448,7 +448,7 @@ int tracecmd_msg_send_init_data(struct tracecmd_msg_handle *msg_handle, goto out; } - buf_end = (char *)msg.buf + buf_len; + buf_end = msg.buf + buf_len; for (i = 0, p = msg.buf; i < cpus; i++, p++) { if (p >= buf_end) { free(ports); @@ -555,12 +555,12 @@ int tracecmd_msg_initial_setting(struct tracecmd_msg_handle *msg_handle) if (buf_len == 0) goto no_options; - if (((char *)msg.buf)[buf_len-1] != '\0') { + if (msg.buf[buf_len-1] != '\0') { ret = -EINVAL; goto error; } - buf_end = (char *)msg.buf + buf_len; + buf_end = msg.buf + buf_len; options = ntohl(msg.tinit.opt_num); for (i = 0, p = msg.buf; i < options; i++, p++) { if (p >= buf_end) { |