=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/arguments.c,v retrieving revision 1.63 retrieving revision 1.64 diff -c -r1.63 -r1.64 *** src/usr.bin/tmux/arguments.c 2024/04/15 08:19:55 1.63 --- src/usr.bin/tmux/arguments.c 2024/05/13 11:45:05 1.64 *************** *** 1,4 **** ! /* $OpenBSD: arguments.c,v 1.63 2024/04/15 08:19:55 nicm Exp $ */ /* * Copyright (c) 2010 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: arguments.c,v 1.64 2024/05/13 11:45:05 nicm Exp $ */ /* * Copyright (c) 2010 Nicholas Marriott *************** *** 164,178 **** argument = &values[*i]; if (argument->type != ARGS_STRING) { xasprintf(cause, "-%c argument must be a string", flag); return (-1); } } if (argument == NULL) { if (optional_argument) { log_debug("%s: -%c (optional)", __func__, flag); args_set(args, flag, NULL, ARGS_ENTRY_OPTIONAL_VALUE); - args_free_value(new); - free(new); return (0); /* either - or end */ } xasprintf(cause, "-%c expects an argument", flag); --- 164,180 ---- argument = &values[*i]; if (argument->type != ARGS_STRING) { xasprintf(cause, "-%c argument must be a string", flag); + args_free_value(new); + free(new); return (-1); } } if (argument == NULL) { + args_free_value(new); + free(new); if (optional_argument) { log_debug("%s: -%c (optional)", __func__, flag); args_set(args, flag, NULL, ARGS_ENTRY_OPTIONAL_VALUE); return (0); /* either - or end */ } xasprintf(cause, "-%c expects an argument", flag);