goto skip_move;
}
- if (old_path[0] != '\0' && path[0] != '\0') {
+ if (old_path && old_path[0] != '\0' && path[0] != '\0') {
/* Rename chunk directory. */
ret = lttng_directory_handle_rename_as_user(
chunk->session_output_directory,
*/
chunk->chunk_directory = rename_directory;
rename_directory = NULL;
- } else if (old_path[0] == '\0') {
+ } else if (old_path && old_path[0] == '\0') {
size_t i, count = lttng_dynamic_pointer_array_get_count(
&chunk->top_level_directories);
*/
chunk->chunk_directory = rename_directory;
rename_directory = NULL;
- } else {
+ } else if (old_path) {
size_t i, count = lttng_dynamic_pointer_array_get_count(
&chunk->top_level_directories);
const bool reference_acquired = lttng_directory_handle_get(
if (status != LTTNG_TRACE_CHUNK_STATUS_OK) {
ERR("Error removing subdirectory '%s' file when deleting chunk",
old_path);
- ret = -1;
goto end;
}
+ } else {
+ /* Unexpected !old_path && !path. */
+ status = LTTNG_TRACE_CHUNK_STATUS_INVALID_ARGUMENT;
+ goto end;
}
skip_move:
- if (path) {
- new_path = strdup(path);
- if (!new_path) {
- ERR("Failed to allocate new trace chunk path");
- status = LTTNG_TRACE_CHUNK_STATUS_ERROR;
- goto end;
- }
- } else {
- new_path = NULL;
+ new_path = strdup(path);
+ if (!new_path) {
+ ERR("Failed to allocate new trace chunk path");
+ status = LTTNG_TRACE_CHUNK_STATUS_ERROR;
+ goto end;
}
free(chunk->path);
chunk->path = new_path;
return status;
}
-LTTNG_HIDDEN
+static
int lttng_trace_chunk_remove_subdirectory_recursive(struct lttng_trace_chunk *chunk,
const char *path)
{