diff --git a/app/xlockmore/etc/xlockmore.desktop b/app/xlockmore/etc/xlockmore.desktop old mode 100755 new mode 100644 diff --git a/app/xlockmore/xlock/privsep.c b/app/xlockmore/xlock/privsep.c index 42dc800f..f7ddac2e 100644 --- a/app/xlockmore/xlock/privsep.c +++ b/app/xlockmore/xlock/privsep.c @@ -1,4 +1,4 @@ -/* $OpenBSD: privsep.c,v 1.2 2022/07/07 05:00:19 semarie Exp $ */ +/* $OpenBSD: privsep.c,v 1.3 2023/12/14 09:44:15 claudio Exp $ */ /* * Copyright 2001 Niels Provos * All rights reserved. @@ -178,7 +178,7 @@ receive_cmd(struct imsgbuf *ibuf, char **name, char **pass, char **style) goto nomem; data += hdr.passlen; if (hdr.stylelen != 0) { - *style = strndup(data, hdr.passlen); + *style = strndup(data, hdr.stylelen); if (*style == NULL) goto nomem; } else diff --git a/app/xlockmore/xlock/xlock.c b/app/xlockmore/xlock/xlock.c index 5d4ebaf6..2c37af8e 100644 --- a/app/xlockmore/xlock/xlock.c +++ b/app/xlockmore/xlock/xlock.c @@ -2659,7 +2659,7 @@ getPassword(void) #endif /* clear plaintext password so you can not grunge around /dev/kmem */ - (void) memset((char *) buffer, 0, sizeof (buffer)); + explicit_bzero(buffer, sizeof (buffer)); if (done) { #ifdef USE_SOUND diff --git a/app/xterm/Makefile b/app/xterm/Makefile index ee338309..b5cfbeb4 100644 --- a/app/xterm/Makefile +++ b/app/xterm/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.37 2021/10/31 18:38:43 matthieu Exp $ +# $OpenBSD: Makefile,v 1.38 2023/12/19 20:31:21 millert Exp $ .include SUBDIR= icons resize @@ -67,7 +67,7 @@ PATCH_YMD != sed -n '/XTERM_DATE/s,[^0-9/.-]*,,gp' ${.CURDIR}/version.h -e 's%__app_version__%Patch\ \#'$(PATCH_NUM)% \ -e 's%__app_date__%'${PATCH_YMD}% \ -e s%__default_termname__%xterm% \ - -e s%__default_termid__%vt100% \ + -e s%__default_termid__%100% \ -e s%__alt_sends_esc__%false% \ -e s%__meta_sends_esc__%false% \ -e s%__backarrow_is_bs__%true% \ diff --git a/app/xterm/uxterm.desktop b/app/xterm/uxterm.desktop old mode 100755 new mode 100644 diff --git a/app/xterm/xterm.desktop b/app/xterm/xterm.desktop old mode 100755 new mode 100644 diff --git a/xserver/Xi/exevents.c b/xserver/Xi/exevents.c index dcd4efb3..54ea11a9 100644 --- a/xserver/Xi/exevents.c +++ b/xserver/Xi/exevents.c @@ -611,13 +611,13 @@ DeepCopyPointerClasses(DeviceIntPtr from, DeviceIntPtr to) } if (from->button->xkb_acts) { - if (!to->button->xkb_acts) { - to->button->xkb_acts = calloc(1, sizeof(XkbAction)); - if (!to->button->xkb_acts) - FatalError("[Xi] not enough memory for xkb_acts.\n"); - } + size_t maxbuttons = max(to->button->numButtons, from->button->numButtons); + to->button->xkb_acts = xnfreallocarray(to->button->xkb_acts, + maxbuttons, + sizeof(XkbAction)); + memset(to->button->xkb_acts, 0, maxbuttons * sizeof(XkbAction)); memcpy(to->button->xkb_acts, from->button->xkb_acts, - sizeof(XkbAction)); + from->button->numButtons * sizeof(XkbAction)); } else { free(to->button->xkb_acts); diff --git a/xserver/dix/devices.c b/xserver/dix/devices.c index 5bf956ea..ed8c5aee 100644 --- a/xserver/dix/devices.c +++ b/xserver/dix/devices.c @@ -2525,6 +2525,8 @@ RecalculateMasterButtons(DeviceIntPtr slave) if (master->button && master->button->numButtons != maxbuttons) { int i; + int last_num_buttons = master->button->numButtons; + DeviceChangedEvent event = { .header = ET_Internal, .type = ET_DeviceChanged, @@ -2535,6 +2537,15 @@ RecalculateMasterButtons(DeviceIntPtr slave) }; master->button->numButtons = maxbuttons; + if (last_num_buttons < maxbuttons) { + master->button->xkb_acts = xnfreallocarray(master->button->xkb_acts, + maxbuttons, + sizeof(XkbAction)); + memset(&master->button->xkb_acts[last_num_buttons], + 0, + (maxbuttons - last_num_buttons) * sizeof(XkbAction)); + } + memcpy(&event.buttons.names, master->button->labels, maxbuttons * sizeof(Atom)); diff --git a/xserver/randr/rrproperty.c b/xserver/randr/rrproperty.c index 25469f57..c4fef8a1 100644 --- a/xserver/randr/rrproperty.c +++ b/xserver/randr/rrproperty.c @@ -530,7 +530,7 @@ ProcRRChangeOutputProperty(ClientPtr client) char format, mode; unsigned long len; int sizeInBytes; - int totalSize; + uint64_t totalSize; int err; REQUEST_AT_LEAST_SIZE(xRRChangeOutputPropertyReq); diff --git a/xserver/randr/rrproviderproperty.c b/xserver/randr/rrproviderproperty.c index b79c17f9..90c5a9a9 100644 --- a/xserver/randr/rrproviderproperty.c +++ b/xserver/randr/rrproviderproperty.c @@ -498,7 +498,7 @@ ProcRRChangeProviderProperty(ClientPtr client) char format, mode; unsigned long len; int sizeInBytes; - int totalSize; + uint64_t totalSize; int err; REQUEST_AT_LEAST_SIZE(xRRChangeProviderPropertyReq);