From 085b88af821a47ea340e6a1a064cf2096b9d9d32 Mon Sep 17 00:00:00 2001 From: purplerain Date: Wed, 30 Aug 2023 17:35:22 +0000 Subject: [PATCH] sync code with last improvements from OpenBSD --- distrib/sets/lists/comp/mi | 1 + lib/libcrypto/asn1/a_time_tm.c | 4 +- lib/libcrypto/man/EVP_CIPHER_do_all.3 | 134 ++++++++++++++++++++++++++ lib/libcrypto/man/Makefile | 3 +- lib/libcrypto/man/evp.3 | 5 +- lib/libcrypto/x509/x509_alt.c | 22 +++-- regress/lib/libcrypto/asn1/asn1time.c | 5 +- regress/sbin/bioctl/Makefile | 18 +++- sys/dev/pci/pcidevs | 3 +- sys/dev/pci/pcidevs.h | 3 +- sys/dev/pci/pcidevs_data.h | 6 +- sys/dev/usb/if_umb.c | 107 +++++++++++++++++++- sys/dev/usb/if_umb.h | 5 +- sys/kern/sched_bsd.c | 4 +- usr.sbin/bgpd/bgpd.h | 8 +- usr.sbin/pkg_add/OpenBSD/BaseState.pm | 4 +- usr.sbin/rpki-client/main.c | 6 +- usr.sbin/rpki-client/parser.c | 4 +- 18 files changed, 307 insertions(+), 35 deletions(-) create mode 100644 lib/libcrypto/man/EVP_CIPHER_do_all.3 diff --git a/distrib/sets/lists/comp/mi b/distrib/sets/lists/comp/mi index 4c2403560..eac590c5d 100644 --- a/distrib/sets/lists/comp/mi +++ b/distrib/sets/lists/comp/mi @@ -1918,6 +1918,7 @@ ./usr/share/man/man3/EVP_AEAD_CTX_init.3 ./usr/share/man/man3/EVP_BytesToKey.3 ./usr/share/man/man3/EVP_CIPHER_CTX_get_cipher_data.3 +./usr/share/man/man3/EVP_CIPHER_do_all.3 ./usr/share/man/man3/EVP_CIPHER_meth_new.3 ./usr/share/man/man3/EVP_DigestInit.3 ./usr/share/man/man3/EVP_DigestSignInit.3 diff --git a/lib/libcrypto/asn1/a_time_tm.c b/lib/libcrypto/asn1/a_time_tm.c index 9cdac73ff..556e12a36 100644 --- a/lib/libcrypto/asn1/a_time_tm.c +++ b/lib/libcrypto/asn1/a_time_tm.c @@ -1,4 +1,4 @@ -/* $OpenBSD: a_time_tm.c,v 1.29 2023/07/07 19:37:52 beck Exp $ */ +/* $OpenBSD: a_time_tm.c,v 1.30 2023/08/30 10:13:12 job Exp $ */ /* * Copyright (c) 2015 Bob Beck * @@ -610,6 +610,8 @@ ASN1_TIME_normalize(ASN1_TIME *t) { struct tm tm; + if (t == NULL) + return 0; if (!ASN1_TIME_to_tm(t, &tm)) return 0; return tm_to_rfc5280_time(&tm, t) != NULL; diff --git a/lib/libcrypto/man/EVP_CIPHER_do_all.3 b/lib/libcrypto/man/EVP_CIPHER_do_all.3 new file mode 100644 index 000000000..1d43d503d --- /dev/null +++ b/lib/libcrypto/man/EVP_CIPHER_do_all.3 @@ -0,0 +1,134 @@ +.\" $OpenBSD: EVP_CIPHER_do_all.3,v 1.1 2023/08/30 00:58:57 tb Exp $ +.\" +.\" Copyright (c) 2023 Theo Buehler +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER 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 30 2023 $ +.Dt EVP_CIPHER_DO_ALL 3 +.Os +.Sh NAME +.Nm EVP_CIPHER_do_all , +.Nm EVP_CIPHER_do_all_sorted , +.Nm EVP_MD_do_all , +.Nm EVP_MD_do_all_sorted +.Nd iterate over lookup tables for ciphers and digests +.Sh SYNOPSIS +.In openssl/evp.h +.Ft void +.Fo EVP_CIPHER_do_all +.Fa "void (*fn)(const EVP_CIPHER *cipher, const char *from,\ + const char *to, void *arg)" +.Fa "void *arg" +.Fc +.Ft void +.Fo EVP_CIPHER_do_all_sorted +.Fa "void (*fn)(const EVP_CIPHER *cipher, const char *from,\ + const char *to, void *arg)" +.Fa "void *arg" +.Fc +.Ft void +.Fo EVP_MD_do_all +.Fa "void (*fn)(const EVP_MD *md, const char *from,\ + const char *to, void *arg)" +.Fa "void *arg" +.Fc +.Ft void +.Fo EVP_MD_do_all_sorted +.Fa "void (*fn)(const EVP_MD *md, const char *from,\ + const char *to, void *arg)" +.Fa "void *arg" +.Fc +.Sh DESCRIPTION +.Fn EVP_CIPHER_do_all +calls +.Fa fn +on every entry of the global table of cipher names and aliases. +For a cipher name entry, +.Fa fn +is called with a non-NULL +.Fa cipher , +its non-NULL cipher name +.Fa from , +a NULL +.Fa to , +and the +.Fa arg +pointer. +For an alias entry, +.Fa fn +is called with a NULL +.Fa cipher , +its alias +.Fa from , +the cipher name that alias points +.Fa to , +and the +.Fa arg +pointer. +.Pp +.Fn EVP_CIPHER_do_all_sorted +is similar, except that it processes the cipher names and aliases +in lexicographic order of their +.Fa from +names as determined by +.Xr strcmp 3 . +.Pp +.Fn EVP_MD_do_all +calls +.Fa fn +on every entry of the global table of digest names and aliases. +For a digest name entry, +.Fa fn +is called with a non-NULL +.Fa md , +its non-NULL digest name +.Fa from , +a NULL +.Fa to , +and the +.Fa arg +pointer. +For an alias entry, +.Fa fn +is called with a NULL +.Fa md , +its alias +.Fa from , +the digest name that alias points +.Fa to , +and the +.Fa arg +pointer. +.Pp +.Fn EVP_MD_do_all_sorted +is similar, except that it processes the digest names and aliases +in lexicographic order of their +.Fa from +names as determined by +.Xr strcmp 3 . +.Sh SEE ALSO +.Xr evp 3 , +.Xr EVP_add_cipher 3 , +.Xr OBJ_NAME_do_all 3 +.Sh HISTORY +These functions first appeared in OpenSSL 1.0.0 and have been available since +.Ox 4.9 . +.Sh BUGS +.Fn EVP_CIPHER_do_all_sorted +and +.Fn EVP_MD_do_all_sorted +are wrappers of +.Xr OBJ_NAME_do_all_sorted 3 . +In particular, if memory allocation fails, they do nothing at all +without telling the caller about the problem. diff --git a/lib/libcrypto/man/Makefile b/lib/libcrypto/man/Makefile index 2c243f7fe..4052638e0 100644 --- a/lib/libcrypto/man/Makefile +++ b/lib/libcrypto/man/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.264 2023/08/27 15:33:08 schwarze Exp $ +# $OpenBSD: Makefile,v 1.265 2023/08/30 00:58:57 tb Exp $ .include @@ -165,6 +165,7 @@ MAN= \ EVP_AEAD_CTX_init.3 \ EVP_BytesToKey.3 \ EVP_CIPHER_CTX_get_cipher_data.3 \ + EVP_CIPHER_do_all.3 \ EVP_CIPHER_meth_new.3 \ EVP_DigestInit.3 \ EVP_DigestSignInit.3 \ diff --git a/lib/libcrypto/man/evp.3 b/lib/libcrypto/man/evp.3 index d53fa94fe..3b93d8ba6 100644 --- a/lib/libcrypto/man/evp.3 +++ b/lib/libcrypto/man/evp.3 @@ -1,4 +1,4 @@ -.\" $OpenBSD: evp.3,v 1.20 2023/08/27 15:33:08 schwarze Exp $ +.\" $OpenBSD: evp.3,v 1.21 2023/08/30 00:58:57 tb Exp $ .\" full merge up to: OpenSSL man7/evp 24a535ea Sep 22 13:14:20 2020 +0100 .\" .\" This file was written by Ulf Moeller , @@ -51,7 +51,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED .\" OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd $Mdocdate: August 27 2023 $ +.Dd $Mdocdate: August 30 2023 $ .Dt EVP 3 .Os .Sh NAME @@ -200,6 +200,7 @@ operations are more efficient using the high-level interfaces. .Xr EVP_camellia_128_cbc 3 , .Xr EVP_chacha20 3 , .Xr EVP_CIPHER_CTX_get_cipher_data 3 , +.Xr EVP_CIPHER_do_all 3 , .Xr EVP_CIPHER_meth_new 3 , .Xr EVP_des_cbc 3 , .Xr EVP_DigestInit 3 , diff --git a/lib/libcrypto/x509/x509_alt.c b/lib/libcrypto/x509/x509_alt.c index c4c5fcabe..59fa39fa6 100644 --- a/lib/libcrypto/x509/x509_alt.c +++ b/lib/libcrypto/x509/x509_alt.c @@ -1,4 +1,4 @@ -/* $OpenBSD: x509_alt.c,v 1.15 2023/02/16 08:38:17 tb Exp $ */ +/* $OpenBSD: x509_alt.c,v 1.16 2023/08/30 00:49:32 tb Exp $ */ /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL * project. */ @@ -354,10 +354,11 @@ err: static int copy_issuer(X509V3_CTX *ctx, GENERAL_NAMES *gens) { - GENERAL_NAMES *ialt; - GENERAL_NAME *gen; + GENERAL_NAMES *ialt = NULL; + GENERAL_NAME *gen = NULL; X509_EXTENSION *ext; int i; + int ret = 0; if (ctx && (ctx->flags == CTX_TEST)) return 1; @@ -375,19 +376,24 @@ copy_issuer(X509V3_CTX *ctx, GENERAL_NAMES *gens) } for (i = 0; i < sk_GENERAL_NAME_num(ialt); i++) { - gen = sk_GENERAL_NAME_value(ialt, i); + GENERAL_NAME *val = sk_GENERAL_NAME_value(ialt, i); + + if ((gen = GENERAL_NAME_dup(val)) == NULL) + goto err; if (!sk_GENERAL_NAME_push(gens, gen)) { X509V3error(ERR_R_MALLOC_FAILURE); goto err; } + gen = NULL; } - sk_GENERAL_NAME_free(ialt); - return 1; + ret = 1; -err: - return 0; + err: + sk_GENERAL_NAME_pop_free(ialt, GENERAL_NAME_free); + GENERAL_NAME_free(gen); + return ret; } static GENERAL_NAMES * diff --git a/regress/lib/libcrypto/asn1/asn1time.c b/regress/lib/libcrypto/asn1/asn1time.c index 0adac0830..65c36dfb0 100644 --- a/regress/lib/libcrypto/asn1/asn1time.c +++ b/regress/lib/libcrypto/asn1/asn1time.c @@ -1,4 +1,4 @@ -/* $OpenBSD: asn1time.c,v 1.16 2022/09/05 21:06:31 tb Exp $ */ +/* $OpenBSD: asn1time.c,v 1.17 2023/08/30 10:13:12 job Exp $ */ /* * Copyright (c) 2015 Joel Sing * @@ -528,5 +528,8 @@ main(int argc, char **argv) failed |= asn1_time_test(i, att, V_ASN1_GENERALIZEDTIME); } + /* Check for a leak in ASN1_TIME_normalize(). */ + failed |= ASN1_TIME_normalize(NULL) != 0; + return (failed); } diff --git a/regress/sbin/bioctl/Makefile b/regress/sbin/bioctl/Makefile index 4109e1396..6bb572297 100644 --- a/regress/sbin/bioctl/Makefile +++ b/regress/sbin/bioctl/Makefile @@ -1,13 +1,15 @@ -# $OpenBSD: Makefile,v 1.6 2023/08/21 18:56:06 kn Exp $ +# $OpenBSD: Makefile,v 1.7 2023/08/30 16:45:57 kn Exp $ BIOCTL ?= /sbin/bioctl CHUNKFILE = disk.img CHUNKDEVFILE = chunk.txt VOLDEVFILE = vol.txt +ROUNDSFILE = rounds.txt OLDPW = oldsecret NEWPW = securenew +NROUNDS ?= 17 REGRESS_SETUP_ONCE = create-chunk @@ -19,7 +21,8 @@ create-chunk: SUCCESS_TESTS = scripted-create-volume \ scripted-recreate-volume \ - scripted-change-passphrase + scripted-change-passphrase \ + verify-increased-rounds REGRESS_TARGETS = ${SUCCESS_TESTS} REGRESS_ROOT_TARGETS = ${SUCCESS_TESTS} @@ -30,12 +33,19 @@ scripted-create-volume: scripted-recreate-volume: detach-volume printf '%s\n' '${OLDPW}' | \ - ${SUDO} ${BIOCTL} -s -Cforce -r17 -cC -l"$$(<${CHUNKDEVFILE})a" -- softraid0 | \ + ${SUDO} ${BIOCTL} -s -Cforce -r${NROUNDS} -cC -l"$$(<${CHUNKDEVFILE})a" -- softraid0 | \ grep -o 'sd[0-9]*$$' -- 1>${VOLDEVFILE} scripted-change-passphrase: printf '%s\n%s\n' '${OLDPW}' '${NEWPW}' | \ - ${SUDO} ${BIOCTL} -s -P -- "$$(<${VOLDEVFILE})" + ${SUDO} ${BIOCTL} -s -P -v -- "$$(<${VOLDEVFILE})" | \ + tee -- ${ROUNDSFILE} + +verify-increased-rounds: + awk -safe -vOLD=${NROUNDS} -- '\ + NR == 1 { old = $$7 }; \ + NR == 2 { new = $$7 }; \ + END { exit !(OLD == old && old <= new) }' ${ROUNDSFILE} FAILURE_TESTS = reuse-active-chunk \ diff --git a/sys/dev/pci/pcidevs b/sys/dev/pci/pcidevs index ff967a604..1924f8f6d 100644 --- a/sys/dev/pci/pcidevs +++ b/sys/dev/pci/pcidevs @@ -1,4 +1,4 @@ -$OpenBSD: pcidevs,v 1.2045 2023/08/09 21:27:47 kmos Exp $ +$OpenBSD: pcidevs,v 1.2046 2023/08/30 07:11:48 kevlo Exp $ /* $NetBSD: pcidevs,v 1.30 1997/06/24 06:20:24 thorpej Exp $ */ /* @@ -8236,6 +8236,7 @@ product PHILIPS SAA7231 0x7231 SAA7231 TV /* Phison products */ product PHISON PS5000 0x5000 PS5000 +product PHISON PS5021 0x5021 PS5021 /* Picopower */ product PICOPOWER PT80C826 0x0000 PT80C826 diff --git a/sys/dev/pci/pcidevs.h b/sys/dev/pci/pcidevs.h index d4d4a9100..3c07405c8 100644 --- a/sys/dev/pci/pcidevs.h +++ b/sys/dev/pci/pcidevs.h @@ -2,7 +2,7 @@ * THIS FILE AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * OpenBSD: pcidevs,v 1.2045 2023/08/09 21:27:47 kmos Exp + * OpenBSD: pcidevs,v 1.2046 2023/08/30 07:11:48 kevlo Exp */ /* $NetBSD: pcidevs,v 1.30 1997/06/24 06:20:24 thorpej Exp $ */ @@ -8241,6 +8241,7 @@ /* Phison products */ #define PCI_PRODUCT_PHISON_PS5000 0x5000 /* PS5000 */ +#define PCI_PRODUCT_PHISON_PS5021 0x5021 /* PS5021 */ /* Picopower */ #define PCI_PRODUCT_PICOPOWER_PT80C826 0x0000 /* PT80C826 */ diff --git a/sys/dev/pci/pcidevs_data.h b/sys/dev/pci/pcidevs_data.h index 78436f7ef..583616c57 100644 --- a/sys/dev/pci/pcidevs_data.h +++ b/sys/dev/pci/pcidevs_data.h @@ -2,7 +2,7 @@ * THIS FILE AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * OpenBSD: pcidevs,v 1.2045 2023/08/09 21:27:47 kmos Exp + * OpenBSD: pcidevs,v 1.2046 2023/08/30 07:11:48 kevlo Exp */ /* $NetBSD: pcidevs,v 1.30 1997/06/24 06:20:24 thorpej Exp $ */ @@ -29663,6 +29663,10 @@ static const struct pci_known_product pci_known_products[] = { PCI_VENDOR_PHISON, PCI_PRODUCT_PHISON_PS5000, "PS5000", }, + { + PCI_VENDOR_PHISON, PCI_PRODUCT_PHISON_PS5021, + "PS5021", + }, { PCI_VENDOR_PICOPOWER, PCI_PRODUCT_PICOPOWER_PT80C826, "PT80C826", diff --git a/sys/dev/usb/if_umb.c b/sys/dev/usb/if_umb.c index 9f98b65dd..3df4ad88e 100644 --- a/sys/dev/usb/if_umb.c +++ b/sys/dev/usb/if_umb.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_umb.c,v 1.52 2023/08/26 11:33:46 dlg Exp $ */ +/* $OpenBSD: if_umb.c,v 1.54 2023/08/29 23:28:38 dlg Exp $ */ /* * Copyright (c) 2016 genua mbH @@ -23,13 +23,16 @@ * Compliance testing guide * https://www.usb.org/sites/default/files/MBIM-Compliance-1.0.pdf */ + #include "bpfilter.h" +#include "kstat.h" #include #include #include #include #include +#include #if NBPFILTER > 0 #include @@ -203,6 +206,17 @@ void umb_decode_qmi(struct umb_softc *, uint8_t *, int); void umb_intr(struct usbd_xfer *, void *, usbd_status); +#if NKSTAT > 0 +void umb_kstat_attach(struct umb_softc *); +void umb_kstat_detach(struct umb_softc *); + +struct umb_kstat_signal { + struct kstat_kv rssi; + struct kstat_kv error_rate; + struct kstat_kv reports; +}; +#endif + int umb_xfer_tout = USBD_DEFAULT_TIMEOUT; uint8_t umb_uuid_basic_connect[] = MBIM_UUID_BASIC_CONNECT; @@ -618,6 +632,11 @@ umb_attach(struct device *parent, struct device *self, void *aux) #if NBPFILTER > 0 bpfattach(&ifp->if_bpf, ifp, DLT_LOOP, sizeof(uint32_t)); #endif + +#if NKSTAT > 0 + umb_kstat_attach(sc); +#endif + /* * Open the device now so that we are able to query device information. * XXX maybe close when done? @@ -645,6 +664,10 @@ umb_detach(struct device *self, int flags) umb_down(sc, 1); umb_close(sc); +#if NKSTAT > 0 + umb_kstat_detach(sc); +#endif + usb_rem_wait_task(sc->sc_udev, &sc->sc_get_response_task); if (timeout_initialized(&sc->sc_statechg_timer)) timeout_del(&sc->sc_statechg_timer); @@ -1670,6 +1693,9 @@ umb_decode_signal_state(struct umb_softc *sc, void *data, int len) struct mbim_cid_signal_state *ss = data; struct ifnet *ifp = GET_IFP(sc); int rssi; +#if NKSTAT > 0 + struct kstat *ks; +#endif if (len < sizeof (*ss)) return 0; @@ -1684,8 +1710,37 @@ umb_decode_signal_state(struct umb_softc *sc, void *data, int len) } sc->sc_info.rssi = rssi; sc->sc_info.ber = letoh32(ss->err_rate); - if (sc->sc_info.ber == -99) + if (sc->sc_info.ber == 99) sc->sc_info.ber = UMB_VALUE_UNKNOWN; + +#if NKSTAT > 0 + ks = sc->sc_kstat_signal; + if (ks != NULL) { + struct umb_kstat_signal *uks = ks->ks_data; + + rw_enter_write(&sc->sc_kstat_lock); + kstat_kv_u64(&uks->reports)++; + + if (sc->sc_info.rssi == UMB_VALUE_UNKNOWN) + uks->rssi.kv_type = KSTAT_KV_T_NULL; + else { + uks->rssi.kv_type = KSTAT_KV_T_INT32; + kstat_kv_s32(&uks->rssi) = sc->sc_info.rssi; + } + + if (sc->sc_info.ber == UMB_VALUE_UNKNOWN) + uks->error_rate.kv_type = KSTAT_KV_T_NULL; + else { + uks->error_rate.kv_type = KSTAT_KV_T_INT32; + kstat_kv_s32(&uks->error_rate) = sc->sc_info.ber; + } + + ks->ks_interval.tv_sec = letoh32(ss->ss_intvl); + getnanouptime(&ks->ks_updated); + rw_exit_write(&sc->sc_kstat_lock); + } +#endif + return 1; } @@ -3146,3 +3201,51 @@ umb_dump(void *buf, int len) addlog("\n"); } #endif /* UMB_DEBUG */ + +#if NKSTAT > 0 + +void +umb_kstat_attach(struct umb_softc *sc) +{ + struct kstat *ks; + struct umb_kstat_signal *uks; + + rw_init(&sc->sc_kstat_lock, "umbkstat"); + + ks = kstat_create(DEVNAM(sc), 0, "mbim-signal", 0, KSTAT_T_KV, 0); + if (ks == NULL) + return; + + uks = malloc(sizeof(*uks), M_DEVBUF, M_WAITOK|M_ZERO); + kstat_kv_init(&uks->rssi, "rssi", KSTAT_KV_T_NULL); + kstat_kv_init(&uks->error_rate, "error rate", KSTAT_KV_T_NULL); + kstat_kv_init(&uks->reports, "reports", KSTAT_KV_T_COUNTER64); + + kstat_set_rlock(ks, &sc->sc_kstat_lock); + ks->ks_data = uks; + ks->ks_datalen = sizeof(*uks); + ks->ks_read = kstat_read_nop; + + ks->ks_softc = sc; + sc->sc_kstat_signal = ks; + kstat_install(ks); +} + +void +umb_kstat_detach(struct umb_softc *sc) +{ + struct kstat *ks = sc->sc_kstat_signal; + struct umb_kstat_signal *uks; + + if (ks == NULL) + return; + + kstat_remove(ks); + sc->sc_kstat_signal = NULL; + + uks = ks->ks_data; + free(uks, M_DEVBUF, sizeof(*uks)); + + kstat_destroy(ks); +} +#endif /* NKSTAT > 0 */ diff --git a/sys/dev/usb/if_umb.h b/sys/dev/usb/if_umb.h index 0b602b542..a62b70d55 100644 --- a/sys/dev/usb/if_umb.h +++ b/sys/dev/usb/if_umb.h @@ -1,4 +1,4 @@ -/* $OpenBSD: if_umb.h,v 1.10 2021/07/04 19:22:32 sthen Exp $ */ +/* $OpenBSD: if_umb.h,v 1.11 2023/08/29 23:26:40 dlg Exp $ */ /* * Copyright (c) 2016 genua mbH @@ -388,5 +388,8 @@ struct umb_softc { #define sc_state sc_info.state #define sc_roaming sc_info.enable_roaming struct umb_info sc_info; + + struct rwlock sc_kstat_lock; + struct kstat *sc_kstat_signal; }; #endif /* _KERNEL */ diff --git a/sys/kern/sched_bsd.c b/sys/kern/sched_bsd.c index 465624e58..2f9ef56ae 100644 --- a/sys/kern/sched_bsd.c +++ b/sys/kern/sched_bsd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sched_bsd.c,v 1.84 2023/08/29 16:19:34 claudio Exp $ */ +/* $OpenBSD: sched_bsd.c,v 1.85 2023/08/30 09:02:38 claudio Exp $ */ /* $NetBSD: kern_synch.c,v 1.37 1996/04/22 01:38:37 christos Exp $ */ /*- @@ -106,7 +106,7 @@ roundrobin(struct clockintr *cl, void *cf) } } - if (spc->spc_nrun) + if (spc->spc_nrun || spc->spc_schedflags & SPCF_SHOULDYIELD) need_resched(ci); } diff --git a/usr.sbin/bgpd/bgpd.h b/usr.sbin/bgpd/bgpd.h index 985ab7915..c19e2acfc 100644 --- a/usr.sbin/bgpd/bgpd.h +++ b/usr.sbin/bgpd/bgpd.h @@ -1,4 +1,4 @@ -/* $OpenBSD: bgpd.h,v 1.476 2023/08/16 08:26:35 claudio Exp $ */ +/* $OpenBSD: bgpd.h,v 1.477 2023/08/30 08:16:28 claudio Exp $ */ /* * Copyright (c) 2003, 2004 Henning Brauer @@ -691,7 +691,8 @@ enum ctl_results { CTL_RES_NOMEM, CTL_RES_BADPEER, CTL_RES_BADSTATE, - CTL_RES_NOSUCHRIB + CTL_RES_NOSUCHRIB, + CTL_RES_OPNOTSUPP, }; /* needed for session.h parse prototype */ @@ -1709,7 +1710,8 @@ static const char * const ctl_res_strerror[] = { "out of memory", "not a cloned peer", "peer still active, down peer first", - "no such RIB" + "no such RIB", + "operation not supported", }; static const char * const timernames[] = { diff --git a/usr.sbin/pkg_add/OpenBSD/BaseState.pm b/usr.sbin/pkg_add/OpenBSD/BaseState.pm index 231a0e6e7..a495d8380 100644 --- a/usr.sbin/pkg_add/OpenBSD/BaseState.pm +++ b/usr.sbin/pkg_add/OpenBSD/BaseState.pm @@ -1,5 +1,5 @@ # ex:ts=8 sw=4: -# $OpenBSD: BaseState.pm,v 1.3 2023/06/13 09:07:17 espie Exp $ +# $OpenBSD: BaseState.pm,v 1.4 2023/08/30 12:04:09 espie Exp $ # # Copyright (c) 2007-2022 Marc Espie # @@ -171,7 +171,7 @@ sub child_error($self, $error = $?) } if ($error & 127) { return $self->f("killed by signal #1#2", - find_signal($error & 127), $extra); + $self->find_signal($error & 127), $extra); } else { return $self->f("exit(#1)#2", ($error >> 8), $extra); } diff --git a/usr.sbin/rpki-client/main.c b/usr.sbin/rpki-client/main.c index e70866631..6c39865e0 100644 --- a/usr.sbin/rpki-client/main.c +++ b/usr.sbin/rpki-client/main.c @@ -1,4 +1,4 @@ -/* $OpenBSD: main.c,v 1.244 2023/06/29 14:33:35 tb Exp $ */ +/* $OpenBSD: main.c,v 1.246 2023/08/30 10:02:28 job Exp $ */ /* * Copyright (c) 2021 Claudio Jeker * Copyright (c) 2019 Kristaps Dzonsons @@ -136,7 +136,7 @@ get_current_time(void) /* * Read a queue entity from the descriptor. - * Matched by entity_buffer_req(). + * Matched by entity_write_req(). * The pointer must be passed entity_free(). */ void @@ -174,7 +174,7 @@ entity_write_req(const struct entity *ent) } static void -entity_write_repo(struct repo *rp) +entity_write_repo(const struct repo *rp) { struct ibuf *b; enum rtype type = RTYPE_REPO; diff --git a/usr.sbin/rpki-client/parser.c b/usr.sbin/rpki-client/parser.c index 9084c2fc7..22a8a42ca 100644 --- a/usr.sbin/rpki-client/parser.c +++ b/usr.sbin/rpki-client/parser.c @@ -1,4 +1,4 @@ -/* $OpenBSD: parser.c,v 1.97 2023/06/29 10:28:25 tb Exp $ */ +/* $OpenBSD: parser.c,v 1.98 2023/08/30 10:01:52 job Exp $ */ /* * Copyright (c) 2019 Claudio Jeker * Copyright (c) 2019 Kristaps Dzonsons @@ -616,7 +616,7 @@ parse_load_file(struct entity *entp, unsigned char **f, size_t *flen) } /* - * Process an entity and responing to parent process. + * Process an entity and respond to parent process. */ static void parse_entity(struct entityq *q, struct msgbuf *msgq)