goto skip_setup;
}
- /* Create directories if consumer is LOCAL and has a path defined. */
- if (usess->consumer->type == CONSUMER_DST_LOCAL &&
- usess->consumer->dst.session_root_path[0] != '\0') {
- char *tmp_path;
-
- tmp_path = zmalloc(LTTNG_PATH_MAX);
- if (!tmp_path) {
- ERR("Alloc tmp_path");
- goto error_unlock;
- }
- ret = snprintf(tmp_path, LTTNG_PATH_MAX, "%s%s%s",
- usess->consumer->dst.session_root_path,
- usess->consumer->chunk_path,
- usess->consumer->subdir);
- if (ret >= LTTNG_PATH_MAX) {
- ERR("Local destination path exceeds the maximal allowed length of %i bytes (needs %i bytes) with path = \"%s%s%s\"",
- LTTNG_PATH_MAX, ret,
- usess->consumer->dst.session_root_path,
- usess->consumer->chunk_path,
- usess->consumer->subdir);
- free(tmp_path);
- goto error_unlock;
- }
-
- DBG("Creating directory path for local tracing: \"%s\"",
- tmp_path);
- ret = run_as_mkdir_recursive(tmp_path, S_IRWXU | S_IRWXG,
- ua_sess->euid, ua_sess->egid);
- free(tmp_path);
- if (ret < 0) {
- if (errno != EEXIST) {
- ERR("Trace directory creation error");
- goto error_unlock;
- }
- }
- }
-
/*
* Create the metadata for the application. This returns gracefully if a
* metadata was already set for the session.
ret = snprintf(pathname, sizeof(pathname),
DEFAULT_UST_TRACE_DIR "/" DEFAULT_UST_TRACE_UID_PATH,
reg->uid, reg->bits_per_long);
- if (ret < 0 || ret == sizeof(pathname)) {
+ if (ret < 0 || ret >= sizeof(pathname)) {
PERROR("Failed to format rotation path");
cmd_ret = LTTNG_ERR_INVALID;
goto error;
ret = snprintf(pathname, sizeof(pathname),
DEFAULT_UST_TRACE_DIR "/%s",
ua_sess->path);
- if (ret < 0 || ret == sizeof(pathname)) {
+ if (ret < 0 || ret >= sizeof(pathname)) {
PERROR("Failed to format rotation path");
cmd_ret = LTTNG_ERR_INVALID;
goto error;