Do not pass NULL to qsort, and add checks for invalid session or window

after swap.
This commit is contained in:
nicm
2026-08-25 07:23:30 +00:00
committed by tmux update bot
parent 0851650c6b
commit 6f4c9b32af
3 changed files with 10 additions and 5 deletions

4
sort.c
View File

@@ -1,4 +1,4 @@
/* $OpenBSD: sort.c,v 1.9 2026/06/29 07:45:09 nicm Exp $ */
/* $OpenBSD: sort.c,v 1.10 2026/08/25 07:23:30 nicm Exp $ */
/*
* Copyright (c) 2026 Dane Jensen <dhcjensen@gmail.com>
@@ -32,7 +32,7 @@ sort_qsort(void *l, u_int len, u_int size, int (*cmp)(const void *,
u_int i;
void *tmp, **ll;
if (sort_crit->order == SORT_END)
if (len < 2 || sort_crit->order == SORT_END)
return;
if (sort_crit->order == SORT_ORDER) {

View File

@@ -1,4 +1,4 @@
/* $OpenBSD: window-switch.c,v 1.2 2026/07/14 17:17:18 nicm Exp $ */
/* $OpenBSD: window-switch.c,v 1.3 2026/08/25 07:23:30 nicm Exp $ */
/*
* Copyright (c) 2026 Nicholas Marriott <nicholas.marriott@gmail.com>
@@ -227,7 +227,8 @@ window_switch_build(struct window_switch_modedata *data)
m = xreallocarray(m, n + 1, sizeof *m);
m[n++] = item;
}
qsort(m, n, sizeof *m, window_switch_compare);
if (n > 1)
qsort(m, n, sizeof *m, window_switch_compare);
free(data->matches);
data->matches = m;

View File

@@ -1,4 +1,4 @@
/* $OpenBSD: window-tree.c,v 1.95 2026/08/24 07:06:58 nicm Exp $ */
/* $OpenBSD: window-tree.c,v 1.96 2026/08/25 07:23:30 nicm Exp $ */
/*
* Copyright (c) 2017 Nicholas Marriott <nicholas.marriott@gmail.com>
@@ -1022,6 +1022,10 @@ window_tree_swap(void *cur_itemdata, void *other_itemdata,
window_tree_pull_item(other, &other_session, &other_winlink,
&other_pane);
if (cur_session == NULL || cur_winlink == NULL)
return (0);
if (other_session == NULL || other_winlink == NULL)
return (0);
if (cur_session != other_session)
return (0);