sync with OpenBSD -current

This commit is contained in:
purplerain 2024-09-16 21:47:14 +00:00
parent 51a5102224
commit 0a783d275f
Signed by: purplerain
GPG Key ID: F42C07F07E2E35B7
10 changed files with 386 additions and 43 deletions

View File

@ -1,4 +1,4 @@
/* $OpenBSD: frontend.c,v 1.38 2024/08/26 06:06:04 florian Exp $ */
/* $OpenBSD: frontend.c,v 1.39 2024/09/16 07:34:49 florian Exp $ */
/*
* Copyright (c) 2017, 2021 Florian Obser <florian@openbsd.org>
@ -310,7 +310,7 @@ frontend_dispatch_main(int fd, short event, void *bula)
fatalx("%s: invalid %s", __func__, i2s(type));
if ((iface = get_iface_by_id(if_index)) == NULL) {
close(fd);
close(udpsock);
break;
}
if (iface->udpsock != -1)

View File

@ -1,4 +1,4 @@
.\" $OpenBSD: rc.shutdown.8,v 1.16 2020/05/16 16:58:12 jmc Exp $
.\" $OpenBSD: rc.shutdown.8,v 1.17 2024/09/15 19:39:26 kn Exp $
.\"
.\" Copyright (c) 1999 Aaron Campbell
.\" All rights reserved.
@ -24,7 +24,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: May 16 2020 $
.Dd $Mdocdate: September 15 2024 $
.Dt RC.SHUTDOWN 8
.Os
.Sh NAME
@ -54,6 +54,9 @@ defined in the
.Va pkg_scripts
variable in
.Xr rc.conf.local 8 ,
as well as
.Xr vmd 8 ,
in that order,
by passing them the
.Cm stop
argument.

View File

@ -1,4 +1,4 @@
/* $OpenBSD: exec_elf.c,v 1.190 2024/08/21 03:16:25 deraadt Exp $ */
/* $OpenBSD: exec_elf.c,v 1.191 2024/09/15 23:13:19 deraadt Exp $ */
/*
* Copyright (c) 1996 Per Fogelstrom
@ -311,8 +311,10 @@ elf_read_pintable(struct proc *p, struct vnode *vp, Elf_Phdr *pp,
for (i = 0; i < nsyscalls; i++) {
if (syscalls[i].sysno <= 0 ||
syscalls[i].sysno >= SYS_MAXSYSCALL ||
syscalls[i].offset > len)
syscalls[i].offset > len) {
npins = 0;
goto bad;
}
npins = MAX(npins, syscalls[i].sysno);
}
if (is_ldso)

View File

@ -1,4 +1,4 @@
/* $OpenBSD: sntrup761.c,v 1.7 2024/09/15 02:20:51 djm Exp $ */
/* $OpenBSD: sntrup761.c,v 1.8 2024/09/16 05:37:05 djm Exp $ */
/*
* Public Domain, Authors:
@ -912,8 +912,8 @@ crypto_int32 crypto_int32_min(crypto_int32 crypto_int32_x,crypto_int32 crypto_in
__asm__ ("cmp %w0,%w1\n csel %w0,%w0,%w1,lt" : "+r"(crypto_int32_x) : "r"(crypto_int32_y) : "cc");
return crypto_int32_x;
#else
crypto_int32 crypto_int32_r = crypto_int32_y ^ crypto_int32_x;
crypto_int32 crypto_int32_z = crypto_int32_y - crypto_int32_x;
crypto_int64 crypto_int32_r = (crypto_int64)crypto_int32_y ^ (crypto_int64)crypto_int32_x;
crypto_int64 crypto_int32_z = (crypto_int64)crypto_int32_y - (crypto_int64)crypto_int32_x;
crypto_int32_z ^= crypto_int32_r & (crypto_int32_z ^ crypto_int32_y);
crypto_int32_z = crypto_int32_negative_mask(crypto_int32_z);
crypto_int32_z &= crypto_int32_r;
@ -931,8 +931,8 @@ crypto_int32 crypto_int32_max(crypto_int32 crypto_int32_x,crypto_int32 crypto_in
__asm__ ("cmp %w0,%w1\n csel %w0,%w1,%w0,lt" : "+r"(crypto_int32_x) : "r"(crypto_int32_y) : "cc");
return crypto_int32_x;
#else
crypto_int32 crypto_int32_r = crypto_int32_y ^ crypto_int32_x;
crypto_int32 crypto_int32_z = crypto_int32_y - crypto_int32_x;
crypto_int64 crypto_int32_r = (crypto_int64)crypto_int32_y ^ (crypto_int64)crypto_int32_x;
crypto_int64 crypto_int32_z = (crypto_int64)crypto_int32_y - (crypto_int64)crypto_int32_x;
crypto_int32_z ^= crypto_int32_r & (crypto_int32_z ^ crypto_int32_y);
crypto_int32_z = crypto_int32_negative_mask(crypto_int32_z);
crypto_int32_z &= crypto_int32_r;
@ -956,8 +956,8 @@ void crypto_int32_minmax(crypto_int32 *crypto_int32_p,crypto_int32 *crypto_int32
*crypto_int32_p = crypto_int32_r;
*crypto_int32_q = crypto_int32_s;
#else
crypto_int32 crypto_int32_r = crypto_int32_y ^ crypto_int32_x;
crypto_int32 crypto_int32_z = crypto_int32_y - crypto_int32_x;
crypto_int64 crypto_int32_r = (crypto_int64)crypto_int32_y ^ (crypto_int64)crypto_int32_x;
crypto_int64 crypto_int32_z = (crypto_int64)crypto_int32_y - (crypto_int64)crypto_int32_x;
crypto_int32_z ^= crypto_int32_r & (crypto_int32_z ^ crypto_int32_y);
crypto_int32_z = crypto_int32_negative_mask(crypto_int32_z);
crypto_int32_z &= crypto_int32_r;

View File

@ -1,5 +1,5 @@
#!/bin/sh
# $OpenBSD: sntrup761.sh,v 1.8 2024/09/15 02:20:51 djm Exp $
# $OpenBSD: sntrup761.sh,v 1.9 2024/09/16 05:37:05 djm Exp $
# Placed in the Public Domain.
#
AUTHOR="supercop-20240808/crypto_kem/sntrup761/ref/implementors"
@ -63,8 +63,13 @@ for i in $FILES; do
-e "s/static void crypto_int16_minmax/void crypto_int16_minmax/"
;;
*/cryptoint/crypto_int32.h)
# Use int64_t for intermediate values in crypto_int32_minmax to
# prevent signed 32-bit integer overflow when called by
# crypto_sort_int32. Original code depends on -fwrapv (we set -ftrapv)
sed -e "s/static void crypto_int32_store/void crypto_int32_store/" \
-e "s/^[#]define crypto_int32_optblocker.*//" \
-e "s/crypto_int32 crypto_int32_r = crypto_int32_y ^ crypto_int32_x;/crypto_int64 crypto_int32_r = (crypto_int64)crypto_int32_y ^ (crypto_int64)crypto_int32_x;/" \
-e "s/crypto_int32 crypto_int32_z = crypto_int32_y - crypto_int32_x;/crypto_int64 crypto_int32_z = (crypto_int64)crypto_int32_y - (crypto_int64)crypto_int32_x;/" \
-e "s/static void crypto_int32_minmax/void crypto_int32_minmax/"
;;
*/cryptoint/crypto_int64.h)

View File

@ -1,4 +1,4 @@
/* $OpenBSD: input.c,v 1.228 2024/08/21 04:37:42 nicm Exp $ */
/* $OpenBSD: input.c,v 1.229 2024/09/16 20:38:48 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
@ -1349,7 +1349,7 @@ input_csi_dispatch(struct input_ctx *ictx)
struct screen_write_ctx *sctx = &ictx->ctx;
struct screen *s = sctx->s;
struct input_table_entry *entry;
int i, n, m;
int i, n, m, ek;
u_int cx, bg = ictx->cell.cell.bg;
if (ictx->flags & INPUT_DISCARD)
@ -1407,30 +1407,36 @@ input_csi_dispatch(struct input_ctx *ictx)
break;
case INPUT_CSI_MODSET:
n = input_get(ictx, 0, 0, 0);
m = input_get(ictx, 1, 0, 0);
/*
* Set the extended key reporting mode as per the client request,
* unless "extended-keys always" forces us into mode 1.
*/
if (options_get_number(global_options, "extended-keys") != 1)
if (n != 4)
break;
screen_write_mode_clear(sctx,
MODE_KEYS_EXTENDED|MODE_KEYS_EXTENDED_2);
if (n == 4 && m == 1)
screen_write_mode_set(sctx, MODE_KEYS_EXTENDED);
if (n == 4 && m == 2)
m = input_get(ictx, 1, 0, 0);
/*
* Set the extended key reporting mode as per the client
* request, unless "extended-keys" is set to "off".
*/
ek = options_get_number(global_options, "extended-keys");
if (ek == 0)
break;
screen_write_mode_clear(sctx, EXTENDED_KEY_MODES);
if (m == 2)
screen_write_mode_set(sctx, MODE_KEYS_EXTENDED_2);
else if (m == 1 || ek == 2)
screen_write_mode_set(sctx, MODE_KEYS_EXTENDED);
break;
case INPUT_CSI_MODOFF:
n = input_get(ictx, 0, 0, 0);
if (n != 4)
break;
/*
* Clear the extended key reporting mode as per the client request,
* unless "extended-keys always" forces us into mode 1.
* Clear the extended key reporting mode as per the client
* request, unless "extended-keys always" forces into mode 1.
*/
if (n == 4) {
screen_write_mode_clear(sctx,
MODE_KEYS_EXTENDED|MODE_KEYS_EXTENDED_2);
}
screen_write_mode_clear(sctx,
MODE_KEYS_EXTENDED|MODE_KEYS_EXTENDED_2);
if (options_get_number(global_options, "extended-keys") == 2)
screen_write_mode_set(sctx, MODE_KEYS_EXTENDED);
break;
case INPUT_CSI_WINOPS:
input_csi_dispatch_winops(ictx);

View File

@ -1,4 +1,4 @@
/* $OpenBSD: options-table.c,v 1.177 2024/08/21 04:37:42 nicm Exp $ */
/* $OpenBSD: options-table.c,v 1.178 2024/09/16 20:28:22 nicm Exp $ */
/*
* Copyright (c) 2011 Nicholas Marriott <nicholas.marriott@gmail.com>
@ -386,6 +386,17 @@ const struct options_table_entry options_table[] = {
.text = "Maximum number of server messages to keep."
},
{ .name = "prefix-timeout",
.type = OPTIONS_TABLE_NUMBER,
.scope = OPTIONS_TABLE_SERVER,
.minimum = 0,
.maximum = INT_MAX,
.default_num = 0,
.unit = "milliseconds",
.text = "The timeout for the prefix key if no subsequent key is "
"pressed. Zero means disabled."
},
{ .name = "prompt-history-limit",
.type = OPTIONS_TABLE_NUMBER,
.scope = OPTIONS_TABLE_SERVER,

View File

@ -1,4 +1,4 @@
/* $OpenBSD: server-client.c,v 1.408 2024/09/11 19:12:33 nicm Exp $ */
/* $OpenBSD: server-client.c,v 1.409 2024/09/16 20:28:22 nicm Exp $ */
/*
* Copyright (c) 2009 Nicholas Marriott <nicholas.marriott@gmail.com>
@ -226,6 +226,17 @@ server_client_set_key_table(struct client *c, const char *name)
key_bindings_unref_table(c->keytable);
c->keytable = key_bindings_get_table(name, 1);
c->keytable->references++;
if (gettimeofday(&c->keytable->activity_time, NULL) != 0)
fatal("gettimeofday failed");
}
static uint64_t
server_client_key_table_activity_diff(struct client *c)
{
struct timeval diff;
timersub(&c->activity_time, &c->keytable->activity_time, &diff);
return ((diff.tv_sec * 1000ULL) + (diff.tv_usec / 1000ULL));
}
/* Get default key table. */
@ -1870,7 +1881,7 @@ server_client_key_callback(struct cmdq_item *item, void *data)
struct key_table *table, *first;
struct key_binding *bd;
int xtimeout;
uint64_t flags;
uint64_t flags, prefix_delay;
struct cmd_find_state fs;
key_code key0, prefix, prefix2;
@ -1965,8 +1976,34 @@ try_again:
if (c->flags & CLIENT_REPEAT)
log_debug("currently repeating");
/* Try to see if there is a key binding in the current table. */
bd = key_bindings_get(table, key0);
/*
* If prefix-timeout is enabled and we're in the prefix table, see if
* the timeout has been exceeded. Revert to the root table if so.
*/
prefix_delay = options_get_number(global_options, "prefix-timeout");
if (prefix_delay > 0 &&
strcmp(table->name, "prefix") == 0 &&
server_client_key_table_activity_diff(c) > prefix_delay) {
/*
* If repeating is active and this is a repeating binding,
* ignore the timeout.
*/
if (bd != NULL &&
(c->flags & CLIENT_REPEAT) &&
(bd->flags & KEY_BINDING_REPEAT)) {
log_debug("prefix timeout ignored, repeat is active");
} else {
log_debug("prefix timeout exceeded");
server_client_set_key_table(c, NULL);
first = table = c->keytable;
server_status_client(c);
goto table_changed;
}
}
/* Try to see if there is a key binding in the current table. */
if (bd != NULL) {
/*
* Key was matched in this table. If currently repeating but a

View File

@ -1,4 +1,4 @@
.\" $OpenBSD: tmux.1,v 1.954 2024/08/27 07:49:07 nicm Exp $
.\" $OpenBSD: tmux.1,v 1.957 2024/09/16 20:46:58 nicm Exp $
.\"
.\" Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
.\"
@ -14,7 +14,7 @@
.\" IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
.\" OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: August 27 2024 $
.Dd $Mdocdate: September 16 2024 $
.Dt TMUX 1
.Os
.Sh NAME
@ -1812,6 +1812,23 @@ is used to name the new paste buffer.
.Xc
Copy from the cursor position and exit copy mode.
.It Xo
.Ic copy-pipe-end-of-line
.Op Ar command
.Op Ar prefix
.Xc
Copy from the cursor position to the end of the line and pipe the text to
.Ar command .
.Ar prefix
is used to name the new paste buffer.
.It Xo
.Ic copy-pipe-end-of-line-and-cancel
.Op Ar command
.Op Ar prefix
.Xc
Same as
.Ic copy-pipe-end-of-line
but also exit copy mode.
.It Xo
.Ic copy-line
.Op Ar prefix
.Xc
@ -1822,11 +1839,60 @@ Copy the entire line.
.Xc
Copy the entire line and exit copy mode.
.It Xo
.Ic copy-pipe-line
.Op Ar command
.Op Ar prefix
.Xc
Copy the entire line and pipe the text to
.Ar command .
.Ar prefix
is used to name the new paste buffer.
.It Xo
.Ic copy-pipe-line-and-cancel
.Op Ar command
.Op Ar prefix
.Xc
Same as
.Ic copy-pipe-line
but also exit copy mode.
.It Xo
.Ic copy-pipe
.Op Ar command
.Op Ar prefix
.Xc
Copy the selection, clear it and pipe its text to
.Ar command .
.Ar prefix
is used to name the new paste buffer.
.It Xo
.Ic copy-pipe-no-clear
.Op Ar command
.Op Ar prefix
.Xc
Same as
.Ic copy-pipe
but do not clear the selection.
.It Xo
.Ic copy-pipe-and-cancel
.Op Ar command
.Op Ar prefix
.Xc
Same as
.Ic copy-pipe
but also exit copy mode.
.It Xo
.Ic copy-selection
.Op Ar prefix
.Xc
Copies the current selection.
.It Xo
.Ic copy-selection-no-clear
.Op Ar prefix
.Xc
Same as
.Ic copy-selection
but do not clear the selection.
.It Xo
.Ic copy-selection-and-cancel
.Op Ar prefix
(vi: Enter)
@ -1840,6 +1906,12 @@ Copy the current selection and exit copy mode.
.Xc
Move the cursor down.
.It Xo
.Ic cursor-down-and-cancel
.Xc
Same as
.Ic cursor-down
but also exit copy mode if reaching the bottom.
.It Xo
.Ic cursor-left
(vi: h)
(emacs: Left)
@ -1871,6 +1943,24 @@ Move the cursor to the end of the line.
.Xc
Move the cursor to a specific line.
.It Xo
.Ic halfpage-down
(vi: C-d)
(emacs: M-Down)
.Xc
Scroll down by half a page.
.It Xo
.Ic halfpage-down-and-cancel
.Xc
Same as
.Ic halfpage-down
but also exit copy mode if reaching the bottom.
.It Xo
.Ic halfpage-up
(vi: C-u)
(emacs: M-Up)
.Xc
Scroll up by half a page.
.It Xo
.Ic history-bottom
(vi: G)
(emacs: M->)
@ -1903,6 +1993,27 @@ Jump backwards to the specified text.
.Xc
Jump forward to the specified text.
.It Xo
.Ic jump-reverse
(vi: ,)
(emacs: ,)
.Xc
Repeat the last jump in the reverse direction (forward becomes backward and
backward becomes forward).
.It Xo
.Ic jump-to-backward
.Ar to
(vi: T)
.Xc
Jump backwards, but one character less, placing the cursor on the character
after the target.
.It Xo
.Ic jump-to-forward
.Ar to
(vi: t)
.Xc
Jump forward, but one character less, placing the cursor on the character
before the target.
.It Xo
.Ic jump-to-mark
(vi: M-x)
(emacs: M-x)
@ -1937,18 +2048,71 @@ Move to the next prompt.
.Xc
Move to the next word.
.It Xo
.Ic next-word-end
(vi: e)
(emacs: M-f)
.Xc
Move to the end of the next word.
.It Xo
.Ic next-space
(vi: W)
.Xc
Same as
.Ic next-word
but use a space alone as the word separator.
.It Xo
.Ic next-space-end
(vi: E)
.Xc
Same as
.Ic next-word-end
but use a space alone as the word separator.
.It Xo
.Ic other-end
(vi: o)
.Xc
Switch at which end of the selection the cursor sits.
.It Xo
.Ic page-down
(vi: C-f)
(emacs: PageDown)
.Xc
Scroll down by one page.
.It Xo
.Ic page-down-and-cancel
.Xc
Same as
.Ic page-down
but also exit copy mode if reaching the bottom.
.It Xo
.Ic page-up
(vi: C-b)
(emacs: PageUp)
.Xc
Scroll up by one page.
.It Xo
.Ic pipe
.Op Ar command
.Xc
Pipe the selected text to
.Ar command
and clear the selection.
.It Xo
.Ic pipe-no-clear
.Op Ar command
.Xc
Same as
.Ic pipe
but do not clear the selection.
.It Xo
.Ic pipe-and-cancel
.Op Ar command
.Op Ar prefix
.Xc
Same as
.Ic pipe
but also exit copy mode.
.It Xo
.Ic previous-matching-bracket
(emacs: M-C-b)
.Xc
@ -1971,6 +2135,21 @@ Move to the previous prompt.
.Xc
Move to the previous word.
.It Xo
.Ic previous-space
(vi: B)
.Xc
Same as
.Ic previous-word
but use a space alone as the word separator.
.It Xo
.Ic rectangle-on
.Xc
Turn on rectangle selection mode.
.It Xo
.Ic rectangle-off
.Xc
Turn off rectangle selection mode.
.It Xo
.Ic rectangle-toggle
(vi: v)
(emacs: R)
@ -1983,6 +2162,40 @@ Toggle rectangle selection mode.
.Xc
Refresh the content from the pane.
.It Xo
.Ic scroll-bottom
.Xc
Scroll up until the current line is at the bottom while keeping the cursor on
that line.
.It Xo
.Ic scroll-down
(vi: C-e)
(emacs: C-Down)
.Xc
Scroll down.
.It Xo
.Ic scroll-down-and-cancel
.Xc
Same as
.Ic scroll-down
but also exit copy mode if the cursor reaches the bottom.
.It Xo
.Ic scroll-middle
(vi: z)
.Xc
Scroll so that the current line becomes the middle one while keeping the
cursor on that line.
.It Xo
.Ic scroll-top
.Xc
Scroll down until the current line is at the top while keeping the cursor on
that line.
.It Xo
.Ic scroll-up
(vi: C-y)
(emacs: C-Up)
.Xc
Scroll up.
.It Xo
.Ic search-again
(vi: n)
(emacs: n)
@ -1995,12 +2208,51 @@ Repeat the last search.
.Xc
Search backwards for the specified text.
.It Xo
.Ic search-backward-incremental
.Ar text
(emacs: C-r)
.Xc
Search backwards incrementally for the specified text.
Is expected to be used with the
.Fl i
flag to the
.Ic command-prompt
command.
.It Xo
.Ic search-backward-text
.Ar text
.Xc
Search backwards for the specified plain text.
.It Xo
.Ic search-forward
.Ar text
(vi: /)
.Xc
Search forward for the specified text.
.It Xo
.Ic search-forward-incremental
.Ar text
(emacs: C-s)
.Xc
Search forward incrementally for the specified text.
Is expected to be used with the
.Fl i
flag to the
.Ic command-prompt
command.
.It Xo
.Ic search-forward-text
.Ar text
.Xc
Search forward for the specified plain text.
.It Xo
.Ic search-reverse
(vi: N)
(emacs: N)
.Xc
Repeat the last search in the reverse direction (forward becomes backward and
backward becomes forward).
.It Xo
.Ic select-line
(vi: V)
.Xc
@ -2010,12 +2262,28 @@ Select the current line.
.Xc
Select the current word.
.It Xo
.Ic set-mark
(vi: X)
(emacs: X)
.Xc
Mark the current line.
.It Xo
.Ic start-of-line
(vi: 0)
(emacs: C-a)
.Xc
Move the cursor to the start of the line.
.It Xo
.Ic stop-selection
.Xc
Stop selecting without clearing the current selection.
.It Xo
.Ic toggle-position
(vi: P)
(emacs: P)
.Xc
Toggle the visibility of the position indicator in the top right.
.It Xo
.Ic top-line
(vi: H)
(emacs: M-R)
@ -3795,7 +4063,8 @@ the sequence for only keys which lack an existing well-known representation; or
mode 2 which changes the sequence for all keys.
When set to
.Ic always ,
mode 1 output is forced and the program cannot change it.
modes 1 and 2 can still be requested by applications, but mode 1 will be forced
instead of the standard mode.
When set to
.Ic off ,
this feature is disabled and only standard keys are reported.
@ -4091,10 +4360,12 @@ If
(the default), leave the session orphaned.
If
.Ic keep-last ,
destroy the session only if it is in a group and has other sessions in that group.
destroy the session only if it is in a group and has other sessions in that
group.
If
.Ic keep-group ,
destroy the session unless it is in a group and is the only session in that group.
destroy the session unless it is in a group and is the only session in that
group.
.It Xo Ic detach-on-destroy
.Op Ic off | on | no-detached | previous | next
.Xc
@ -4228,6 +4499,13 @@ Like
.Ic prefix2
can be set to
.Ql None .
.It Ic prefix-timeout Ar time
Set the time in milliseconds for which
.Nm
waits after
.Ic prefix
is input before dismissing it.
Can be set to zero to disable any timeout.
.It Xo Ic renumber-windows
.Op Ic on | off
.Xc

View File

@ -1,4 +1,4 @@
/* $OpenBSD: tmux.h,v 1.1226 2024/08/27 07:49:07 nicm Exp $ */
/* $OpenBSD: tmux.h,v 1.1227 2024/09/16 20:28:22 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
@ -1982,6 +1982,7 @@ RB_HEAD(key_bindings, key_binding);
struct key_table {
const char *name;
struct timeval activity_time;
struct key_bindings key_bindings;
struct key_bindings default_key_bindings;