diff --git a/qrexec/qrexec-client.c b/qrexec/qrexec-client.c index f5c9a6f..8b8d5a6 100644 --- a/qrexec/qrexec-client.c +++ b/qrexec/qrexec-client.c @@ -253,7 +253,8 @@ static void send_service_connect(int s, char *conn_ident, exec_params.connect_domain = connect_domain; exec_params.connect_port = connect_port; - strncpy(srv_params.ident, conn_ident, sizeof(srv_params.ident)); + strncpy(srv_params.ident, conn_ident, sizeof(srv_params.ident) - 1); + srv_params.ident[sizeof(srv_params.ident) - 1] = '\0'; if (!write_all(s, &hdr, sizeof(hdr)) || !write_all(s, &exec_params, sizeof(exec_params)) @@ -722,7 +723,8 @@ int main(int argc, char **argv) if (strcmp(domname, "dom0") == 0) { if (connect_existing) { msg_type = MSG_SERVICE_CONNECT; - strncpy(svc_params.ident, request_id, sizeof(svc_params.ident)); + strncpy(svc_params.ident, request_id, sizeof(svc_params.ident) - 1); + svc_params.ident[sizeof(svc_params.ident) - 1] = '\0'; } else if (just_exec) msg_type = MSG_JUST_EXEC; else