=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/status.c,v retrieving revision 1.241 retrieving revision 1.242 diff -c -r1.241 -r1.242 *** src/usr.bin/tmux/status.c 2023/11/14 15:59:49 1.241 --- src/usr.bin/tmux/status.c 2024/05/15 08:39:30 1.242 *************** *** 1,4 **** ! /* $OpenBSD: status.c,v 1.241 2023/11/14 15:59:49 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: status.c,v 1.242 2024/05/15 08:39:30 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott *************** *** 994,1001 **** if ((pb = paste_get_top(NULL)) == NULL) return (0); bufdata = paste_buffer_data(pb, &bufsize); ! ud = xreallocarray(NULL, bufsize + 1, sizeof *ud); ! udp = ud; for (i = 0; i != bufsize; /* nothing */) { more = utf8_open(udp, bufdata[i]); if (more == UTF8_MORE) { --- 994,1000 ---- if ((pb = paste_get_top(NULL)) == NULL) return (0); bufdata = paste_buffer_data(pb, &bufsize); ! ud = udp = xreallocarray(NULL, bufsize + 1, sizeof *ud); for (i = 0; i != bufsize; /* nothing */) { more = utf8_open(udp, bufdata[i]); if (more == UTF8_MORE) { *************** *** 1016,1040 **** udp->size = 0; n = udp - ud; } ! if (n == 0) ! return (0); ! ! c->prompt_buffer = xreallocarray(c->prompt_buffer, size + n + 1, ! sizeof *c->prompt_buffer); ! if (c->prompt_index == size) { ! memcpy(c->prompt_buffer + c->prompt_index, ud, ! n * sizeof *c->prompt_buffer); ! c->prompt_index += n; ! c->prompt_buffer[c->prompt_index].size = 0; ! } else { ! memmove(c->prompt_buffer + c->prompt_index + n, ! c->prompt_buffer + c->prompt_index, ! (size + 1 - c->prompt_index) * sizeof *c->prompt_buffer); ! memcpy(c->prompt_buffer + c->prompt_index, ud, ! n * sizeof *c->prompt_buffer); ! c->prompt_index += n; } - if (ud != c->prompt_saved) free(ud); return (1); --- 1015,1038 ---- udp->size = 0; n = udp - ud; } ! if (n != 0) { ! c->prompt_buffer = xreallocarray(c->prompt_buffer, size + n + 1, ! sizeof *c->prompt_buffer); ! if (c->prompt_index == size) { ! memcpy(c->prompt_buffer + c->prompt_index, ud, ! n * sizeof *c->prompt_buffer); ! c->prompt_index += n; ! c->prompt_buffer[c->prompt_index].size = 0; ! } else { ! memmove(c->prompt_buffer + c->prompt_index + n, ! c->prompt_buffer + c->prompt_index, ! (size + 1 - c->prompt_index) * ! sizeof *c->prompt_buffer); ! memcpy(c->prompt_buffer + c->prompt_index, ud, ! n * sizeof *c->prompt_buffer); ! c->prompt_index += n; ! } } if (ud != c->prompt_saved) free(ud); return (1); *************** *** 1839,1844 **** --- 1837,1843 ---- } if (size == 0) { menu_free(menu); + free(spm); return (NULL); } if (size == 1) { *************** *** 1849,1854 **** --- 1848,1854 ---- } else tmp = list[0]; free(list); + free(spm); return (tmp); } if (height > size)