kettenis [Sat, 15 Jan 2022 11:04:16 +0000 (11:04 +0000)]
Don't reset the controller on each transaction. Remove unecessary polling
loop and adjust another polling loop. This makes accessing the cs42l83
audio codec work. Probably removing the reset is enough to fix this
but the other changes bring us in line with the Linux driver which had
some decent RE done to it recently.
ok patrick@
tb [Sat, 15 Jan 2022 09:14:40 +0000 (09:14 +0000)]
Update for HMAC_CTX_{init,cleanup} hand HMAC_cleanup removal
tb [Sat, 15 Jan 2022 09:08:51 +0000 (09:08 +0000)]
Stop documenting clone digests.
jsg [Sat, 15 Jan 2022 04:10:01 +0000 (04:10 +0000)]
bring back spelling fix from rev 1.138 lost in rev 1.140
pointed out by Brad
tb [Sat, 15 Jan 2022 04:02:37 +0000 (04:02 +0000)]
Minor cleanup and simplification in dsa_pub_encode()
This function has a weird dance of allocating an ASN1_STRING in an
inner scope and assigning it to a void pointer in an outer scope for
passing it to X509_PUBKEY_set0_param() and ASN1_STRING_free() on error.
This can be simplified and streamlined.
ok inoguchi
inoguchi [Sat, 15 Jan 2022 02:46:12 +0000 (02:46 +0000)]
Add ct.h and x509_vfy.h
inoguchi [Fri, 14 Jan 2022 23:55:46 +0000 (23:55 +0000)]
Avoid buffer overflow in asn1_parse2
asn1_par.c r1.29 changed to access p[0] directly, and this pointer could be
overrun since ASN1_get_object advances pointer to the first content octet.
In case invalid ASN1 Boolean data, it has length but no content, I thought
this could be happen.
Adding check p with tot (diff below) will avoid this failure.
Reported by oss-fuzz 43633 and 43648(later)
ok tb@
mbuhl [Fri, 14 Jan 2022 19:53:42 +0000 (19:53 +0000)]
mark failing tests for macppc
OK bluhm@
claudio [Fri, 14 Jan 2022 15:00:23 +0000 (15:00 +0000)]
Introduce a validated cache which holds all the files that have
successfully been verified by rpki-client.
With this the rsync and rrdp directories are more of a temporary storage
location. New files are downloaded there and then moved to the valid
directory at the end. In -n mode only the valid directory is looked at with
the exception of the ta directory holding the trust anchors.
A file can now be in two different locations so adjust all the code paths
that open files to check both locations.
One nice side-effect of this is that the RRDP handling in the main process
got simplified. There is no longer the need for temporary RRDP directories.
OK tb@
kettenis [Fri, 14 Jan 2022 15:00:16 +0000 (15:00 +0000)]
We don't have 64-bit atomics on powerpc, but we don't really need them.
So don't provide atomic64_cmpxchg() on powerpc and on other architectures
make its implementation similar to atomic64_xchg().
This makes the tree build again on macppc.
suggested by & ok jsg@
tb [Fri, 14 Jan 2022 10:17:30 +0000 (10:17 +0000)]
Enable openssl pkey -{,pub}check and pkeyparam -check
tb [Fri, 14 Jan 2022 09:38:50 +0000 (09:38 +0000)]
Undo static linking and other workarounds that are no longer needed
after the bump
tb [Fri, 14 Jan 2022 09:35:18 +0000 (09:35 +0000)]
Convert wycheproof.go for opaque EVP_AEAD_CTX
tb [Fri, 14 Jan 2022 09:33:46 +0000 (09:33 +0000)]
The cttest can link dynamically now
tb [Fri, 14 Jan 2022 09:32:27 +0000 (09:32 +0000)]
Simplify BN_mont test slightly using a new accessor.
tb [Fri, 14 Jan 2022 09:28:07 +0000 (09:28 +0000)]
openssl(1) dgst: fix build after clones removal
ok inoguchi jsing
tb [Fri, 14 Jan 2022 09:27:30 +0000 (09:27 +0000)]
Convert openssl(1) speed for opaque EVP_AEAD_CTX
ok inoguchi jsing
tb [Fri, 14 Jan 2022 09:26:41 +0000 (09:26 +0000)]
Convert openssl(1) rsa.c for opaque RSA
ok inoguchi jsing
tb [Fri, 14 Jan 2022 09:25:42 +0000 (09:25 +0000)]
openssl(1) genrsa: simplify access to rsa->e
ok inoguchi jsing
tb [Fri, 14 Jan 2022 09:25:00 +0000 (09:25 +0000)]
Convert openssl(1) gendsa.c to opaque DSA
ok inoguchi jsing
tb [Fri, 14 Jan 2022 09:24:20 +0000 (09:24 +0000)]
Convert openssl(1) dsaparam to opaque dsa
ok inoguchi jsing
tb [Fri, 14 Jan 2022 09:23:42 +0000 (09:23 +0000)]
Convert openssl(1) dsa.c to opaque DSA
ok inoguchi jsing
tb [Fri, 14 Jan 2022 09:22:50 +0000 (09:22 +0000)]
Convert openssl(1) dhparam to opaque DH
ok inoguchi jsing
tb [Fri, 14 Jan 2022 09:21:54 +0000 (09:21 +0000)]
Convert openssl(1) dh.c to opaque DH
ok inoguchi jsing
tb [Fri, 14 Jan 2022 09:20:18 +0000 (09:20 +0000)]
Fix acme-client build with opaque RSA
tb [Fri, 14 Jan 2022 09:19:19 +0000 (09:19 +0000)]
isakmpd: convert modp to opaque DH
tb [Fri, 14 Jan 2022 09:16:52 +0000 (09:16 +0000)]
sync
tb [Fri, 14 Jan 2022 09:15:07 +0000 (09:15 +0000)]
bump libcrypto, libssl, libtls majors after struct visibility changes
and Symbol addition and removal in libcrypto.
tb [Fri, 14 Jan 2022 09:12:53 +0000 (09:12 +0000)]
Use the correct type for ssl_callback_ctrl()
tb [Fri, 14 Jan 2022 09:12:15 +0000 (09:12 +0000)]
Convert the new record layers to opaque EVP_AEAD_CTX
ok jsing
tb [Fri, 14 Jan 2022 09:11:22 +0000 (09:11 +0000)]
Convert ssl_kex.c to opaque DH
Stop reaching into DH internals and use the new API functions instead.
ok inoguchi jsing
tb [Fri, 14 Jan 2022 09:10:11 +0000 (09:10 +0000)]
Use BIO_next/BIO_set_next in ssl_lib.c
Trivial conversion to cope with opaque BIO.
tb [Fri, 14 Jan 2022 09:09:30 +0000 (09:09 +0000)]
bio_ssl.c needs to peek into bio_local.h
tb [Fri, 14 Jan 2022 09:08:03 +0000 (09:08 +0000)]
libkeynote: fix build with opaque RSA and DSA
This is a completely mechanical conversion to use accessors instead
of reaching inside the structs by hand.
ok millert
tb [Fri, 14 Jan 2022 09:06:02 +0000 (09:06 +0000)]
Update Symbols.list
ok inoguchi
tb [Fri, 14 Jan 2022 09:03:53 +0000 (09:03 +0000)]
Unconditionally comment out OPENSSL_NO_RFC3779
ok inoguchi jsing
tb [Fri, 14 Jan 2022 09:01:36 +0000 (09:01 +0000)]
Remove header guard around RFC 3779 declarations
ok inoguchi jsing
tb [Fri, 14 Jan 2022 08:59:30 +0000 (08:59 +0000)]
Expose Certificate Transparency symbols in headers
ok inoguchi jsing
tb [Fri, 14 Jan 2022 08:56:00 +0000 (08:56 +0000)]
Hide OBJ_bsearch_ from public visibility,
This removes OBJ_bsearch_ex_() from the exported symbols and makes
OBJ_bsearch_() semi-private. It is still used in libssl.
While here, remove some hideous unused macros
ok inoguchi jsing
tb [Fri, 14 Jan 2022 08:53:53 +0000 (08:53 +0000)]
Move ASN1_BOOLEAN to internal only.
This moves {d2i,i2d}_ASN1_BOOLEAN() to internal only. They are unused,
but help us testing the encoding.
ok jsing
tb [Fri, 14 Jan 2022 08:52:05 +0000 (08:52 +0000)]
Remove check_defer and obj_cleanup_defer from public visibility
ok inoguchi jsing
tb [Fri, 14 Jan 2022 08:50:25 +0000 (08:50 +0000)]
Remove name_cmp from public visibility
ok inoguchi jsing
tb [Fri, 14 Jan 2022 08:43:06 +0000 (08:43 +0000)]
Remove all asn1_* symbols from public visibility
ok inoguchi jsing
tb [Fri, 14 Jan 2022 08:40:57 +0000 (08:40 +0000)]
Implement new-style OpenSSL BIO callbacks
This provides support for new-style BIO callbacks in
BIO_{read,write,gets,puts}() and a helper function to
work out whether it should call the new or the old
style callback. It also adds a few typedefs and minor
code cleanup as well as the BIO_{get,set}_callback_ex()
from jsing, ok tb
tb [Fri, 14 Jan 2022 08:38:48 +0000 (08:38 +0000)]
Garbage collect last use of EVP_ecdsa()
ok inoguchi jsing
tb [Fri, 14 Jan 2022 08:38:05 +0000 (08:38 +0000)]
Remove legacy sign/verify from EVP_MD.
This removes m_dss.c, m_dss1.c, and m_ecdsa.c and the corresponding
public API EVP_{dss,dss1,ecdsa}().
This is basically the following OpenSSL commit. The mentioned change in
RSA is already present in rsa/rsa_pmeth.c.
ok inoguchi jsing
commit
7f572e958b13041056f377a62d3219633cfb1e8a
Author: Dr. Stephen Henson <steve@openssl.org>
Date: Wed Dec 2 13:57:04 2015 +0000
Remove legacy sign/verify from EVP_MD.
Remove sign/verify and required_pkey_type fields of EVP_MD: these are a
legacy from when digests were linked to public key types. All signing is
now handled by the corresponding EVP_PKEY_METHOD.
Only allow supported digest types in RSA EVP_PKEY_METHOD: other algorithms
already block unsupported types.
Remove now obsolete EVP_dss1() and EVP_ecdsa().
Reviewed-by: Richard Levitte <levitte@openssl.org>
Plus OpenSSL commit
625a9baf11c1dd94f17e5876b6ee8d6271b3921d for m_dss.c
tb [Fri, 14 Jan 2022 08:34:39 +0000 (08:34 +0000)]
Make RSA, RSA_PSS_PARAMS and RSA_METHOD opaque
Move the struct internals to rsa_locl.h and provide a missing
typedef in ossl_typ.h.
ok inoguchi jsing
tb [Fri, 14 Jan 2022 08:32:26 +0000 (08:32 +0000)]
Make structs in ocsp.h opaque
This adds a little order to this pig sty.
ok inoguchi jsing
tb [Fri, 14 Jan 2022 08:31:03 +0000 (08:31 +0000)]
Move ECDSA_SIG to ecs_locl.h
We can't make ECDSA_METHOD opaque since it is still used in smtpd(8)
ok inoguchi jsing
tb [Fri, 14 Jan 2022 08:29:06 +0000 (08:29 +0000)]
Simplify DSAPublicKey_it
This was obtained by porting the OpenSSL commit below and then using
expand_crypto_asn1.go to unroll the new ASN.1 macros - actually the
ones from
987157f6f63 which fixed the omission of dsa_cb() in the
first commit.
ok inoguchi jsing
commit
ea6b07b54c1f8fc2275a121cdda071e2df7bd6c1
Author: Dr. Stephen Henson <steve@openssl.org>
Date: Thu Mar 26 14:35:49 2015 +0000
Simplify DSA public key handling.
DSA public keys could exist in two forms: a single Integer type or a
SEQUENCE containing the parameters and public key with a field called
"write_params" deciding which form to use. These forms are non standard
and were only used by functions containing "DSAPublicKey" in the name.
Simplify code to only use the parameter form and encode the public key
component directly in the DSA public key method.
Reviewed-by: Richard Levitte <levitte@openssl.org>
tb [Fri, 14 Jan 2022 08:27:23 +0000 (08:27 +0000)]
Make DSA opaque
This moves DSA_SIG, DSA and DSA_METHOD to dsa_locl.h.
ok inoguchi jsing
tb [Fri, 14 Jan 2022 08:25:44 +0000 (08:25 +0000)]
Make structs in dh.h opaque
This moves the struct internals for DH and DH_METHOD to dh_local.h.
ok inoguchi jsing
tb [Fri, 14 Jan 2022 08:23:25 +0000 (08:23 +0000)]
Garbage collect the unused OPENSSL_ITEM
ok inoguchi jsing
tb [Fri, 14 Jan 2022 08:21:12 +0000 (08:21 +0000)]
Make structs in comp.h opaque
This moves COMP_CTX and COMP_METHOD to comp_local.h and provides
missing typedefs in ossl_typ.h.
ok inoguchi jsing
tb [Fri, 14 Jan 2022 08:18:55 +0000 (08:18 +0000)]
Make structs in bio.h opaque
Move BIO, BIO_METHOD and BIO_F_BUFFER_CTX to bio_local.h and provide
BIO typedef in ossl_typ.h.
ok inoguchi jsing
tb [Fri, 14 Jan 2022 08:16:13 +0000 (08:16 +0000)]
Garbage collect the app_items field of ASN1_ADB
This is unused and was removed in OpenSSL
5b70372d when it was
replaced with an ASN.1 ADB callback (which we don't support).
ok inoguchi jsing
tb [Fri, 14 Jan 2022 08:14:48 +0000 (08:14 +0000)]
Remove NO_ASN1_FIELD_NAMES
This follows OpenSSL commit
26f2412d.
ok inoguchi jsing
tb [Fri, 14 Jan 2022 08:12:31 +0000 (08:12 +0000)]
Remove obsolete key formats
This removes NETSCAPE_X509, NETSCAPE{,_ENCRYPTED}_PKEY, RSA_NET,
Netscape_RSA things. Some of the nasty tentacles that could go in
principle are used in some test suites, so we need to keep them...
All this was removed as part of OpenSSL commit
0bc2f365.
ok inoguchi jsing
tb [Fri, 14 Jan 2022 08:09:18 +0000 (08:09 +0000)]
Remove ASN1_OBJECT internals from public visibility.
Move the struct declaration to asn1_locl.h and add a forward
declaration to ossl_typ.h. This makes struct visibility in the
asn1 headers match OpenSSL.
ok inoguchi jsing
tb [Fri, 14 Jan 2022 08:06:03 +0000 (08:06 +0000)]
Remove HMAC_CTX_{init,cleanup}() and HMAC_init from public visibility
In OpenSSL commit
32fd54a9a3 HMAC_CTX_cleanup() was integrated into
HMAC_CTX_init(), then HMAC_CTX_init() was renamed to HMAC_CTX_reset()
in
dc0099e1.
LibreSSL retained them for API compatibility with OpenSSL 1.0.
Not many things use them anymore. In fact, some projects that didn't
want to modify their code for OpenSSL 1.1 API compatibility used the
removed functions to wrap the OpenSSL 1.1 API. We had to patch some
of these and this will now no longer be necessary.
Also remove HMAC_cleanup(). Nothing uses this.
ok inoguchi jsing
tb [Fri, 14 Jan 2022 08:04:14 +0000 (08:04 +0000)]
Make structs in evp.h and hmac.h opaque
This moves most structs to evp_locl.h and moves HMAC_CTX to hmac_local.h.
ok inoguchi jsing
tb [Fri, 14 Jan 2022 08:01:47 +0000 (08:01 +0000)]
Move BN structs to bn_lcl.h
This makes all structs in bn.h opaque that are also opaque in OpenSSL.
ok inoguchi jsing
tb [Fri, 14 Jan 2022 07:59:32 +0000 (07:59 +0000)]
Remove BIO_s_file_internal
Pointed out by schwarze. How something with this name ever made
its way into a public header will remain a mystery.
ok inoguchi jsing
tb [Fri, 14 Jan 2022 07:57:17 +0000 (07:57 +0000)]
Remove ASN1{_const,}_check_infinite_end
Suggested by schwarze
ok inoguchi jsing
tb [Fri, 14 Jan 2022 07:55:29 +0000 (07:55 +0000)]
Remove ASN1{,_const}_CTX
These are leftovers of the old ASN.1 stuff. Nothing uses this.
OpenSSL removed them in
a469a677.
ok inoguchi jsing
tb [Fri, 14 Jan 2022 07:53:45 +0000 (07:53 +0000)]
Remove X509_OBJECT_free_contents
Inline X509_OBJECT_free_contents() in X509_OBJECT_free() and
remove this dangerous API. It was left over when x509_vfy.h
was made opaque.
ok inoguchi jsing
tb [Fri, 14 Jan 2022 07:52:24 +0000 (07:52 +0000)]
Remove PEM_Seal{Init,Update,Final}
This unused, bug-ridden API was removed in OpenSSL commit
0674427f.
ok inoguchi jsing
tb [Fri, 14 Jan 2022 07:49:49 +0000 (07:49 +0000)]
Unifdef LIBRESSL_OPAQUE_* and LIBRESSL_NEXT_API
This marks the start of major surgery in libcrypto. Do not attempt to
build the tree for a while (~50 commits).
jsg [Fri, 14 Jan 2022 06:52:58 +0000 (06:52 +0000)]
update drm to linux 5.15.14
new hardware support includes
Intel
ehl/Elkhart Lake (embedded)
jsl/Jasper Lake (atom)
rkl/Rocket Lake (desktop)
AMD
van gogh APU (gfx1033)
yellow carp / rembrandt APU (gfx1035?)
Ryzen 6000 APU
navy flounder / navi 22 (gfx1031)
RX 6700, RX 6700 XT, RX 6700M, RX 6800M, RX 6850M XT
dimgrey cavefish / navi 23 (gfx1032)
Pro W6600, Pro W6600M, RX 6600, RX 6600 XT, RX 6600M,
RX 6600S, RX 6650M, RX 6650M XT, RX 6700S, RX 6800S
beige goby / navi 24 (gfx1034)
RX 6500 XT, RX 6400, RX 6500M, RX 6300M
Thanks to the OpenBSD Foundation for sponsoring this work
niklas@ for helping with ttm and amdgpu and patrick@ for adapting
rockchip drm.
dlg [Fri, 14 Jan 2022 04:25:57 +0000 (04:25 +0000)]
get the list of things in the full identifier right.
djm [Fri, 14 Jan 2022 03:43:48 +0000 (03:43 +0000)]
allow pin-required FIDO keys to be added to ssh-agent(1).
ssh-askpass will be used to request the PIN at authentication time.
From Pedro Martelletto, ok djm
djm [Fri, 14 Jan 2022 03:35:10 +0000 (03:35 +0000)]
ssh-sk: free a resident key's user id
From Pedro Martelletto; ok dtucker & me
djm [Fri, 14 Jan 2022 03:34:00 +0000 (03:34 +0000)]
sshsk_load_resident: don't preallocate resp
resp is allocated by client_converse(), at which point we lose
the original pointer.
From Pedro Martelletto; ok dtucker & me
djm [Fri, 14 Jan 2022 03:32:52 +0000 (03:32 +0000)]
sshsk_sign: trim call to sshkey_fingerprint()
the resulting fingerprint doesn't appear to be used for anything,
and we end up leaking it.
from Pedro Martelletto; ok dtucker & me
djm [Fri, 14 Jan 2022 03:31:52 +0000 (03:31 +0000)]
use status error message to communicate ~user expansion failures;
provides better experience for scp in sftp mode, where ~user paths
are more likely to be used; spotted jsg, feedback jsg & deraadt
ok jsg & markus
(forgot to include this file in previous commit)
jsg [Fri, 14 Jan 2022 00:14:39 +0000 (00:14 +0000)]
Computng -> Computing
robert [Thu, 13 Jan 2022 19:05:00 +0000 (19:05 +0000)]
add a dummy -t flag to llvm-ranlib to match binutils' ranlib's -t flag which
is a no-op; ok millert@
jmc [Thu, 13 Jan 2022 18:39:14 +0000 (18:39 +0000)]
fix the -width argument;
claudio [Thu, 13 Jan 2022 14:58:21 +0000 (14:58 +0000)]
Move mft_check() after setting repoid and path on the mft.
Also skip mft_check() if the mft is stale because at least in -n mode
the files to check are probably not around.
OK tb@
claudio [Thu, 13 Jan 2022 14:57:02 +0000 (14:57 +0000)]
Move some functions around to reduce diff with an upcoming change.
OK tb@
visa [Thu, 13 Jan 2022 14:15:27 +0000 (14:15 +0000)]
Make bpf event filter MP-safe
Use bd_mtx to serialize bpf knote handling. This allows calling the
event filter without the kernel lock.
OK mpi@
visa [Thu, 13 Jan 2022 14:12:02 +0000 (14:12 +0000)]
Return an error if bpfilter_lookup() fails in bpfkqfilter()
The lookup should not fail because the kernel lock should prevent
simultaneous detaching on the vnode layer. However, most other device
kqfilter routines check the lookup's outcome anyway, which is maybe
a bit more forgiving.
OK mpi@
claudio [Thu, 13 Jan 2022 13:46:03 +0000 (13:46 +0000)]
Alter valid_filehash() to take a file descriptor instead of a path.
This is needed so that callers can allow a file to be in multiple
locations. Also move mft_check() from mft.c to parser.c.
OK tb@
claudio [Thu, 13 Jan 2022 13:18:41 +0000 (13:18 +0000)]
Implement a RRDP_CLEAR message that instructs the parent to cleanup
the rrdp directory. This is used before a snapshot download to ensure
that the snapshot is applied to a clean repo.
Similar cleanup happens if the transfer fails. In that case remove the
temp directory contents only.
This uses a new function remove_contents() to remove everything below
a base directory (a bit like rm -r X/*).
OK tb@
espie [Thu, 13 Jan 2022 12:21:22 +0000 (12:21 +0000)]
allow disabling the @ts tweak, which may come in handy for new fw_update
that doesn't grok them.
claudio [Thu, 13 Jan 2022 11:50:29 +0000 (11:50 +0000)]
Implement but don't use code to use rsync's --compare-dest feature.
One gotcha is that the path passed to --compare-dest needs to be relative
to the dst directory. rsync_fixup_dest() will prepend the necessary ../
for that by counting number of '/' in dst.
OK tb@
claudio [Thu, 13 Jan 2022 11:47:44 +0000 (11:47 +0000)]
Add the same entityq_flush() logic in ta_lookup() as it is done in
repo_lookup(). This fixes -n mode.
OK tb@
espie [Thu, 13 Jan 2022 11:23:47 +0000 (11:23 +0000)]
be more explicit about the current package format and why it's so.
martijn [Thu, 13 Jan 2022 10:34:58 +0000 (10:34 +0000)]
Adapt to changed debugging output
martijn [Thu, 13 Jan 2022 10:34:07 +0000 (10:34 +0000)]
Move parsing of incoming syslog messages to their own section.
This should make it more manageable.
No functional change intended, debugging output slightly changed.
help from and OK bluhm@
kettenis [Thu, 13 Jan 2022 08:59:10 +0000 (08:59 +0000)]
Implement powerdown. This involves writing a magic bit somewhere in the
address space of the SPMI PMU to prevent the machine from immediately
starting up again.
The implementaton makes aplpmu(4) provide powerdownfn(), which sets the
magic bit and then chains into cpuresetfn(). It also makes aplsmc(4)
provide cpuresetfn() to reset the machine via the SMC. Resetting via
the watchdog works as well (and will powerdown the machine if the magic
bit is set) but letting the SMC handle things might do some other
required steps.
ok patrick@
schwarze [Thu, 13 Jan 2022 08:39:24 +0000 (08:39 +0000)]
Tedu support for the -xsh4.2 argument to the mdoc(7) .St macro
because all of the following hold:
* It is an alias for a part of an ancient standard that is no longer important.
* To refer to that old standard, -xpg4.2 is readily available and portable.
* It is unused in OpenBSD, FreeBSD, and NetBSD.
* Groff never supported it.
I agreed with G. Branden Robinson that deleting this from mandoc
is preferable to adding it to groff.
schwarze [Thu, 13 Jan 2022 05:10:46 +0000 (05:10 +0000)]
Calling MB_CUR_MAX is much more expensive than incrementing a pointer
and than testing and printing a byte, so do it once up front rather
than inside the inner loop. This speeds up rev(1) by about a factor
of three for typical use cases.
Performance issue found by cheloha@, but my fix is a bit simpler
and more rigorous than Scott's original patch.
While here, also add the missing handling for write errors (making
them fatal, whereas read errors remain non-fatal and proceed to the
next input file) and also avoid testing each byte twice, making the
code more straightforward and more readable.
In part using ideas from millert@ and martijn@.
OK martijn@.
dtucker [Thu, 13 Jan 2022 04:53:16 +0000 (04:53 +0000)]
Set LC_ALL in both local and remote shells so that sorted output
matches regardless of what the user's shell sets it to. ok djm@
dtucker [Thu, 13 Jan 2022 04:22:10 +0000 (04:22 +0000)]
Avoid %'s in commands (not used in OpenBSD, but used in -portable's
Valgrind test) being interpretted as printf format strings.
schwarze [Thu, 13 Jan 2022 04:06:10 +0000 (04:06 +0000)]
Only sort the result array if it contains more than one element,
making the mansearch() function easier to read for human auditors.
No functional change on OpenBSD.
As observed by Mark Millard <marklmi at yahoo dot com>, neither the
latest version of POSIX 2008 nor C11 defines what qsort(3) should do
for base == NULL && nmemb == 0.
My impression is it is indeed undefined behaviour because the
standards say that base shall point to an array, NULL does not point
to an array, and while there is special wording saying that compar()
shall not be called if nmemb == 0, i fail to see any similar wording
stating that base shall not be accessed if nmemb == 0.
Consequently, this patch is also likely to improve standard conformance
and portability.
Minor issue found by Stefan Esser <se at FreeBSD> with UBSAN.
He sent a patch to bugs@, but my patch differs in a minor way.
tb [Wed, 12 Jan 2022 22:55:51 +0000 (22:55 +0000)]
zap some stray whitespace
tb [Wed, 12 Jan 2022 22:52:40 +0000 (22:52 +0000)]
seperators -> separators
tb [Wed, 12 Jan 2022 22:51:44 +0000 (22:51 +0000)]
zap spaces before tabs
tb [Wed, 12 Jan 2022 22:49:53 +0000 (22:49 +0000)]
gratuitious -> gratuitous