Ensure that session name, hostname and the session's base path
do not contain dots ('.') to safeguard against malformed names
that could be used to walk-up the relay daemon output path
hierarchy.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
uint32_t minor)
{
int ret;
- struct relay_session *session;
+ struct relay_session *session = NULL;
+
+ if (session_name && strstr(session_name, ".")) {
+ ERR("Illegal character in session name: \"%s\"",
+ session_name);
+ goto error;
+ }
+ if (base_path && strstr(base_path, "../")) {
+ ERR("Invalid session base path walks up the path hierarchy: \"%s\"",
+ base_path);
+ goto error;
+ }
+ if (hostname && strstr(hostname, ".")) {
+ ERR("Invalid character in hostname: \"%s\"",
+ hostname);
+ goto error;
+ }
session = zmalloc(sizeof(*session));
if (!session) {