=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/tmux.c,v retrieving revision 1.206 retrieving revision 1.207 diff -u -r1.206 -r1.207 --- src/usr.bin/tmux/tmux.c 2021/02/22 11:42:50 1.206 +++ src/usr.bin/tmux/tmux.c 2021/06/10 07:52:29 1.207 @@ -1,4 +1,4 @@ -/* $OpenBSD: tmux.c,v 1.206 2021/02/22 11:42:50 nicm Exp $ */ +/* $OpenBSD: tmux.c,v 1.207 2021/06/10 07:52:29 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -338,7 +338,7 @@ char *path = NULL, *label = NULL; char *cause, **var; const char *s, *cwd; - int opt, keys, feat = 0; + int opt, keys, feat = 0, fflag = 0; uint64_t flags = 0; const struct options_table_entry *oe; u_int i; @@ -383,10 +383,15 @@ flags |= CLIENT_CONTROL; break; case 'f': - for (i = 0; i < cfg_nfiles; i++) - free(cfg_files[i]); - free(cfg_files); - expand_paths(optarg, &cfg_files, &cfg_nfiles, 0); + if (!fflag) { + fflag = 1; + for (i = 0; i < cfg_nfiles; i++) + free(cfg_files[i]); + cfg_nfiles = 0; + } + cfg_files = xreallocarray(cfg_files, cfg_nfiles + 1, + sizeof *cfg_files); + cfg_files[cfg_nfiles++] = xstrdup(optarg); cfg_quiet = 0; break; case 'V':