aboutsummaryrefslogtreecommitdiff
path: root/cmd-new-session.c
diff options
context:
space:
mode:
authornicm <nicm>2021-07-06 08:18:38 +0000
committernicm <nicm>2021-07-06 08:18:38 +0000
commit35c2958ae4caf70a3074f59fbceeb24cfe82f902 (patch)
tree605d25b43e085156dd1931885657a1fdc7434462 /cmd-new-session.c
parent1d4296f17fde47186e2d09752a912559af034e37 (diff)
downloadrtmux-35c2958ae4caf70a3074f59fbceeb24cfe82f902.tar.gz
rtmux-35c2958ae4caf70a3074f59fbceeb24cfe82f902.tar.bz2
rtmux-35c2958ae4caf70a3074f59fbceeb24cfe82f902.zip
Forbid empty session names, GitHub issue 2758.
Diffstat (limited to 'cmd-new-session.c')
-rw-r--r--cmd-new-session.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/cmd-new-session.c b/cmd-new-session.c
index c47d66cd..666aeaac 100644
--- a/cmd-new-session.c
+++ b/cmd-new-session.c
@@ -102,6 +102,11 @@ cmd_new_session_exec(struct cmd *self, struct cmdq_item *item)
if (tmp != NULL) {
name = format_single(item, tmp, c, NULL, NULL, NULL);
newname = session_check_name(name);
+ if (newname == NULL) {
+ cmdq_error(item, "invalid session: %s", name);
+ free(name);
+ return (CMD_RETURN_ERROR);
+ }
free(name);
}
if (args_has(args, 'A')) {
@@ -134,8 +139,14 @@ cmd_new_session_exec(struct cmd *self, struct cmdq_item *item)
prefix = xstrdup(sg->name);
else if (groupwith != NULL)
prefix = xstrdup(groupwith->name);
- else
+ else {
prefix = session_check_name(group);
+ if (prefix == NULL) {
+ cmdq_error(item, "invalid session group: %s",
+ group);
+ goto fail;
+ }
+ }
}
/* Set -d if no client. */