Instead of forbidding invalid session names, sanitize them.

This commit is contained in:
Nicholas Marriott
2020-04-24 16:40:10 +01:00
parent 527f66ed23
commit 9b571dacee
4 changed files with 32 additions and 35 deletions

View File

@ -49,19 +49,15 @@ cmd_rename_session_exec(struct cmd *self, struct cmdq_item *item)
struct args *args = cmd_get_args(self);
struct cmd_find_state *target = cmdq_get_target(item);
struct session *s = target->s;
char *newname;
char *newname, *tmp;
newname = format_single_from_target(item, args->argv[0]);
tmp = format_single_from_target(item, args->argv[0]);
newname = session_check_name(tmp);
free(tmp);
if (strcmp(newname, s->name) == 0) {
free(newname);
return (CMD_RETURN_NORMAL);
}
if (!session_check_name(newname)) {
cmdq_error(item, "bad session name: %s", newname);
free(newname);
return (CMD_RETURN_ERROR);
}
if (session_find(newname) != NULL) {
cmdq_error(item, "duplicate session: %s", newname);
free(newname);