Fix: relayd relay_send_version: handle sscanf return code
[lttng-tools.git] / src / bin / lttng-relayd / main.c
index 15e2b2266f7264d31b3029e7dad0bdac5c2f6576..dc6d2564a043abb44bb567d85a2a215d3317363f 100644 (file)
@@ -1265,9 +1265,9 @@ static
 int relay_send_version(struct lttcomm_relayd_hdr *recv_hdr,
                struct relay_command *cmd)
 {
-       int ret = htobe32(LTTNG_OK);
+       int ret;
        struct lttcomm_relayd_version reply;
-       struct relay_session *session = NULL;
+       struct relay_session *session;
 
        if (cmd->session == NULL) {
                session = zmalloc(sizeof(struct relay_session));
@@ -1279,10 +1279,17 @@ int relay_send_version(struct lttcomm_relayd_hdr *recv_hdr,
                session->id = ++last_relay_session_id;
                DBG("Created session %" PRIu64, session->id);
                cmd->session = session;
+       } else {
+               session = cmd->session;
        }
        session->version_check_done = 1;
 
-       sscanf(VERSION, "%u.%u", &reply.major, &reply.minor);
+       ret = sscanf(VERSION, "%u.%u", &reply.major, &reply.minor);
+       if (ret < 2) {
+               ERR("Error in scanning version");
+               ret = -1;
+               goto end;
+       }
        reply.major = htobe32(reply.major);
        reply.minor = htobe32(reply.minor);
        ret = cmd->sock->ops->sendmsg(cmd->sock, &reply,
This page took 0.023551 seconds and 4 git commands to generate.