=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/arguments.c,v retrieving revision 1.55 retrieving revision 1.56 diff -c -r1.55 -r1.56 *** src/usr.bin/tmux/arguments.c 2022/06/07 10:02:19 1.55 --- src/usr.bin/tmux/arguments.c 2022/08/02 09:23:34 1.56 *************** *** 1,4 **** ! /* $OpenBSD: arguments.c,v 1.55 2022/06/07 10:02:19 nicm Exp $ */ /* * Copyright (c) 2010 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: arguments.c,v 1.56 2022/08/02 09:23:34 nicm Exp $ */ /* * Copyright (c) 2010 Nicholas Marriott *************** *** 895,900 **** --- 895,904 ---- *cause = xstrdup("missing"); return (0); } + if (TAILQ_EMPTY(&entry->values)) { + *cause = xstrdup("empty"); + return (0); + } value = TAILQ_LAST(&entry->values, args_values)->string; return (args_string_percentage(value, minval, maxval, curval, cause)); } *************** *** 909,914 **** --- 913,922 ---- size_t valuelen = strlen(value); char *copy; + if (valuelen == 0) { + *cause = xstrdup("empty"); + return (0); + } if (value[valuelen - 1] == '%') { copy = xstrdup(value); copy[valuelen - 1] = '\0'; *************** *** 953,958 **** --- 961,970 ---- if ((entry = args_find(args, flag)) == NULL) { *cause = xstrdup("missing"); + return (0); + } + if (TAILQ_EMPTY(&entry->values)) { + *cause = xstrdup("empty"); return (0); } value = TAILQ_LAST(&entry->values, args_values)->string;