On the CI, g++ reports:
char* strncpy(char*, const char*, size_t)' specified bound 4096 equals destination size [-Wstringop-truncation]
The shm_path provided by liblttng-ctl is truncated to PATH_MAX
regardless of its contents.
LTTN_ERR_INVALID is returned if the shm_path is not null terminated.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Change-Id: Ie369f2ee368c70e2b3b41c45a69da7e6d9fa45f8
return LTTNG_ERR_SESSION_STARTED;
}
- strncpy(session->shm_path, shm_path, sizeof(session->shm_path));
- session->shm_path[sizeof(session->shm_path) - 1] = '\0';
-
- return LTTNG_OK;
+ /* Report an error if shm_path is too long or not null-terminated. */
+ const auto copy_ret = lttng_strncpy(session->shm_path, shm_path, sizeof(session->shm_path));
+ return copy_ret == 0 ? LTTNG_OK : LTTNG_ERR_INVALID;
}
/*