diff options
author | nicm <nicm> | 2021-07-06 08:18:38 +0000 |
---|---|---|
committer | nicm <nicm> | 2021-07-06 08:18:38 +0000 |
commit | 35c2958ae4caf70a3074f59fbceeb24cfe82f902 (patch) | |
tree | 605d25b43e085156dd1931885657a1fdc7434462 /cmd-new-session.c | |
parent | 1d4296f17fde47186e2d09752a912559af034e37 (diff) | |
download | rtmux-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.c | 13 |
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. */ |