* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#define _GNU_SOURCE
+#define _LGPL_SOURCE
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <common/common.h>
#include <common/defaults.h>
+#include <common/compat/endian.h>
#include <common/sessiond-comm/relayd.h>
#include <common/index/ctf-index.h>
goto alloc_error;
}
+ memset(&header, 0, sizeof(header));
header.cmd = htobe32(cmd);
header.data_size = htobe64(size);
int ret;
struct lttcomm_relayd_create_session_2_4 msg;
+ if (strlen(session_name) >= sizeof(msg.session_name)) {
+ ret = -1;
+ goto error;
+ }
strncpy(msg.session_name, session_name, sizeof(msg.session_name));
+ if (strlen(hostname) >= sizeof(msg.hostname)) {
+ ret = -1;
+ goto error;
+ }
strncpy(msg.hostname, hostname, sizeof(msg.hostname));
msg.live_timer = htobe32(session_live_timer);
msg.snapshot = htobe32(snapshot);
/* Compat with relayd 2.1 */
if (rsock->minor == 1) {
+ memset(&msg, 0, sizeof(msg));
+ if (strlen(channel_name) >= sizeof(msg.channel_name)) {
+ ret = -1;
+ goto error;
+ }
strncpy(msg.channel_name, channel_name, sizeof(msg.channel_name));
+ if (strlen(pathname) >= sizeof(msg.pathname)) {
+ ret = -1;
+ goto error;
+ }
strncpy(msg.pathname, pathname, sizeof(msg.pathname));
/* Send command */
goto error;
}
} else {
+ memset(&msg_2_2, 0, sizeof(msg_2_2));
/* Compat with relayd 2.2+ */
+ if (strlen(channel_name) >= sizeof(msg_2_2.channel_name)) {
+ ret = -1;
+ goto error;
+ }
strncpy(msg_2_2.channel_name, channel_name, sizeof(msg_2_2.channel_name));
+ if (strlen(pathname) >= sizeof(msg_2_2.pathname)) {
+ ret = -1;
+ goto error;
+ }
strncpy(msg_2_2.pathname, pathname, sizeof(msg_2_2.pathname));
msg_2_2.tracefile_size = htobe64(tracefile_size);
msg_2_2.tracefile_count = htobe64(tracefile_count);
DBG("Relayd version check for major.minor %u.%u", rsock->major,
rsock->minor);
+ memset(&msg, 0, sizeof(msg));
/* Prepare network byte order before transmission. */
msg.major = htobe32(rsock->major);
msg.minor = htobe32(rsock->minor);
DBG("Relayd closing stream id %" PRIu64, stream_id);
+ memset(&msg, 0, sizeof(msg));
msg.stream_id = htobe64(stream_id);
msg.last_net_seq_num = htobe64(last_net_seq_num);
DBG("Relayd data pending for stream id %" PRIu64, stream_id);
+ memset(&msg, 0, sizeof(msg));
msg.stream_id = htobe64(stream_id);
msg.last_net_seq_num = htobe64(last_net_seq_num);
DBG("Relayd checking quiescent control state");
+ memset(&msg, 0, sizeof(msg));
msg.stream_id = htobe64(metadata_stream_id);
/* Send command */
DBG("Relayd begin data pending");
+ memset(&msg, 0, sizeof(msg));
msg.session_id = htobe64(id);
/* Send command */
DBG("Relayd end data pending");
+ memset(&msg, 0, sizeof(msg));
msg.session_id = htobe64(id);
/* Send command */
DBG("Relayd sending index for stream ID %" PRIu64, relay_stream_id);
+ memset(&msg, 0, sizeof(msg));
msg.relay_stream_id = htobe64(relay_stream_id);
msg.net_seq_num = htobe64(net_seq_num);