X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Flib%2Flttng-ctl%2Frotate.c;h=17964fb1070784b9b65badf61eca9a94da9e819c;hb=d37406195ec30adfb1bd903e3ee8dfdda79700ef;hp=daba7afa2318ab3b504632192502b589475732b1;hpb=ab5be9fa2eb5ba9600a82cd18fd3cfcbac69169a;p=lttng-tools.git diff --git a/src/lib/lttng-ctl/rotate.c b/src/lib/lttng-ctl/rotate.c index daba7afa2..17964fb10 100644 --- a/src/lib/lttng-ctl/rotate.c +++ b/src/lib/lttng-ctl/rotate.c @@ -169,7 +169,7 @@ void lttng_rotation_handle_destroy( if (!rotation_handle) { return; } - lttng_trace_archive_location_destroy(rotation_handle->archive_location); + lttng_trace_archive_location_put(rotation_handle->archive_location); free(rotation_handle); } @@ -219,8 +219,11 @@ int lttng_rotate_session(const char *session_name, memset(&lsm, 0, sizeof(lsm)); lsm.cmd_type = LTTNG_ROTATE_SESSION; - lttng_ctl_copy_string(lsm.session.name, session_name, - sizeof(lsm.session.name)); + + ret = lttng_strncpy(lsm.session.name, session_name, + sizeof(lsm.session.name)); + /* Source length already validated. */ + assert(ret == 0); ret = lttng_ctl_ask_sessiond(&lsm, (void **) &rotate_return); if (ret <= 0) { @@ -282,8 +285,10 @@ enum lttng_rotation_status lttng_rotation_update_schedule( memset(&lsm, 0, sizeof(lsm)); lsm.cmd_type = LTTNG_ROTATION_SET_SCHEDULE; - lttng_ctl_copy_string(lsm.session.name, session_name, + ret = lttng_strncpy(lsm.session.name, session_name, sizeof(lsm.session.name)); + /* Source length already validated. */ + assert(ret == 0); lsm.u.rotation_set_schedule.type = (uint32_t) schedule->type; switch (schedule->type) { @@ -362,14 +367,23 @@ int get_schedules(const char *session_name, { int ret; struct lttcomm_session_msg lsm; - struct lttng_session_list_schedules_return *schedules_comm; + struct lttng_session_list_schedules_return *schedules_comm = NULL; struct lttng_rotation_schedules *schedules = NULL; struct lttng_rotation_schedule *periodic = NULL, *size = NULL; + if (!session_name) { + ret = -LTTNG_ERR_INVALID; + goto end; + } + memset(&lsm, 0, sizeof(lsm)); lsm.cmd_type = LTTNG_SESSION_LIST_ROTATION_SCHEDULES; - lttng_ctl_copy_string(lsm.session.name, session_name, + ret = lttng_strncpy(lsm.session.name, session_name, sizeof(lsm.session.name)); + if (ret) { + ret = -LTTNG_ERR_INVALID; + goto end; + } ret = lttng_ctl_ask_sessiond(&lsm, (void **) &schedules_comm); if (ret < 0) {