X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fcommon%2Ftrace-chunk.c;h=32792926928d6abb6ebed749460e3a970307c2f3;hb=317ea246af2890928a75913db461ff2f417e518c;hp=f909a682f6b376769b9cdbd27662e7d36f5e64b7;hpb=83fa31bf7c7ba6cb7837e35762059a090343f376;p=lttng-tools.git diff --git a/src/common/trace-chunk.c b/src/common/trace-chunk.c index f909a682f..327929269 100644 --- a/src/common/trace-chunk.c +++ b/src/common/trace-chunk.c @@ -859,7 +859,7 @@ enum lttng_trace_chunk_status lttng_trace_chunk_rename_path_no_lock( */ 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( @@ -905,9 +905,12 @@ enum lttng_trace_chunk_status lttng_trace_chunk_rename_path_no_lock( 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: @@ -1027,7 +1030,7 @@ enum lttng_trace_chunk_status lttng_trace_chunk_set_as_owner( status = LTTNG_TRACE_CHUNK_STATUS_ERROR; goto end; } - if (chunk->path[0] != '\0') { + if (chunk->path && chunk->path[0] != '\0') { ret = lttng_directory_handle_create_subdirectory_as_user( session_output_directory, chunk->path, @@ -1491,7 +1494,7 @@ end: return status; } -LTTNG_HIDDEN +static int lttng_trace_chunk_remove_subdirectory_recursive(struct lttng_trace_chunk *chunk, const char *path) {