stsp [Thu, 12 May 2022 12:29:28 +0000 (12:29 +0000)]
Bump IWX_UCODE_SECT_MAX to allow all new AX210/AX211 fw images to be parsed
successfully. Else we get "iwx0: firmware parse error 22, section type 19"
while trying to load iwx-so-a0-gf-a0-67 and iwx-so-a0-gf4-a0-67.
stsp [Thu, 12 May 2022 11:37:57 +0000 (11:37 +0000)]
Add missing AX210/AX211 devices to the device ID matching table.
The driver will now actually match on all those new devices, as intended.
Reported by Guilherme M. Schroeder
krw [Thu, 12 May 2022 11:04:27 +0000 (11:04 +0000)]
Prevent '-u' when operating on GPT formatted disks, as the
equivalent 'update' editing command already is.
Avoids the destruction of the GPT when the preventative MBR
is overwritten with the default MBR.
ok deraadt@
tb [Thu, 12 May 2022 10:53:59 +0000 (10:53 +0000)]
Remove verify callback
It is no longer possible to build rpki-client with LibreSSL < 3.5 or with
OpenSSL built with OPENSSL_NO_RFC3779, so this compat code can be retired.
ok claudio job
tb [Thu, 12 May 2022 10:50:12 +0000 (10:50 +0000)]
nuke tabs
tb [Thu, 12 May 2022 10:49:22 +0000 (10:49 +0000)]
Align parsing of ipAddrBlock with autnomousSysNum
We now do one allocation per address family instead of one per prefix or
range.
ok claudio
tb [Thu, 12 May 2022 10:12:18 +0000 (10:12 +0000)]
Add a few more testcases for X509v3_asid_subset()
tb [Thu, 12 May 2022 08:53:33 +0000 (08:53 +0000)]
Tidy up IP handling
Populate struct ip in the leaf functions instead of handing it through
several layers and copying it along the way. Pass in the afi instead of
letting struct ip carry it.
ok claudio
claudio [Thu, 12 May 2022 07:45:27 +0000 (07:45 +0000)]
Refactor parsing of autonomousSysNum. Adjust code so that the allocation
needed for append_as() is done upfront.
OK tb@
espie [Thu, 12 May 2022 04:41:43 +0000 (04:41 +0000)]
ditch the ...
job [Wed, 11 May 2022 21:19:06 +0000 (21:19 +0000)]
Verify MFT and GBR objects only carry RFC 3779 extensions set to 'inherit'
OK claudio@ tb@
tb [Wed, 11 May 2022 18:48:35 +0000 (18:48 +0000)]
Zap stray space
millert [Wed, 11 May 2022 17:23:56 +0000 (17:23 +0000)]
Mark pw_error as __dead in prototype to match the function definition.
From Matthew Martin.
espie [Wed, 11 May 2022 17:17:35 +0000 (17:17 +0000)]
fix quirks timestamp display: it's done somewhat early, before we decide
whether we update or not, so we need to decorate the update_info with
the signer timestamp. It's the only place where an update_info actually
needs that stuff.
tb [Wed, 11 May 2022 16:13:05 +0000 (16:13 +0000)]
Cache X509v3 extensions as soon as we have a cert
X509 API functions such as X509_check_ca() or X509_get_extension_flags()
can't be used reliably unless we know that X509v3 extensions are cached.
Otherwise they try to cache the extensions themselves but can't report
possible errors sensibly. They carry on and may return nonsense.
An old trick is to call X509_check_purpose() with a purpose of -1 which
is a wrapper around the internal x509v3_cache_extensions() that allows
error checking. Do this when we have a new cert. This way the API
functions affected by this can be relied upon. Another nice side effect
of doing this is that with LibreSSL we then know that the RFC 3779
extensions are in canonical form.
ok beck claudio
job [Wed, 11 May 2022 14:42:01 +0000 (14:42 +0000)]
In filemode check whether ROA & RSC resources are properly contained
with and OK tb@ claudio@
espie [Wed, 11 May 2022 11:18:04 +0000 (11:18 +0000)]
tweak header
espie [Wed, 11 May 2022 09:55:41 +0000 (09:55 +0000)]
locate yields information in sorted order (of course)
so I can show a percentage of cached names already handled.
espie [Wed, 11 May 2022 09:47:23 +0000 (09:47 +0000)]
gc old stats code I no longer use
optimize archive reading slightly: read one less header
if we skip things, and we don't need to check wanted for
emptiness if it didn't change.
tb [Wed, 11 May 2022 09:40:00 +0000 (09:40 +0000)]
Fix doc comment of sbgp_asrange()
tb [Wed, 11 May 2022 09:07:04 +0000 (09:07 +0000)]
Move sbgp_addr() down to the other sbgp_addr_* functions.
ok claudio job
tb [Wed, 11 May 2022 08:59:00 +0000 (08:59 +0000)]
Deserialize ASIdentifiers in libcrypto
Let the RFC 3779 code in libcrypto do its job: deserialize the ASIdentifiers
extension using X509V3_EXT_d2i() and then simply walk the returned struct.
This replaces quite a bit of low level ASN.1 fiddling with much simpler
reaching into structs with names that have some meaning.
Additionally, RFC 6487, 4.8.10 forbids RDI entries, so throw an error
instead of ignoring them.
ok claudio
espie [Wed, 11 May 2022 07:51:47 +0000 (07:51 +0000)]
move a bit of code in a separate sub, fix indentation, add some comments
that explain some of the more complicated stuff going on now
kevlo [Wed, 11 May 2022 06:14:15 +0000 (06:14 +0000)]
Use hardware routine for PHY reset and always accept the PHY that's present.
The previously used software reset routine wasn't sufficient to reset the PHY
if the bootloader hadn't left the device in an initialized state.
From FreeBSD.
Bug reported and the fix tested by daniel@
sashan [Tue, 10 May 2022 23:12:25 +0000 (23:12 +0000)]
move memory allocations in pfr_add_tables() out of
NET_LOCK()/PF_LOCK() scope. bluhm@ helped a lot
to put this diff into shape.
OK bluhm@
solene [Tue, 10 May 2022 22:18:06 +0000 (22:18 +0000)]
make the CPU frequency scaling duration relative to the load
in the pre-change behavior, if the CPU frequency is raised, it will stay up
for 5 cycles minimum (with one cycle being run every 100ms).
With this change, the time to keep the frequency raised is incremented at
each cycle up to 5. This mean short load need triggering the frequency
increase will last less than the current minimum of 500ms.
this only affect the automatic mode when on battery, extending the battery
life for most interactive use scenarios and idling loads.
tested by many with good results
ok ketennis@
kettenis [Tue, 10 May 2022 20:23:57 +0000 (20:23 +0000)]
Prevent out-of-bounds array access with binaries that use unsupported
relocations.
ok guenther@
tb [Tue, 10 May 2022 19:44:29 +0000 (19:44 +0000)]
Add a BUGS section to describe the problem of potential lies and
indicating a workaround.
input/ok jsing
tb [Tue, 10 May 2022 19:42:52 +0000 (19:42 +0000)]
X509_check_ca() has 5 return values but still can't fail
The values 0, 1, 3, 4, 5 all have some meaning, none of which is failure.
If caching of X509v3 extensions fails, returning X509_V_ERR_UNSPECIFIED,
i.e., 1 is a bad idea since that means the cert is a CA with appropriate
basic constraints. Revert to OpenSSL behavior which is to ignore failure
to cache extensions at the risk of reporting lies.
Since no return value can indicate failure, we can't fix this in
X509_check_ca() itself. Application code will have to call (and check)
the magic X509_check_purpose(x, -1, -1) to ensure extensions are cached,
then X509_check_ca() can't lie.
ok jsing
tb [Tue, 10 May 2022 19:27:21 +0000 (19:27 +0000)]
If Ruby 3.1 isn't available, try to fall back to Ruby 3.0 so that
regress on bluhm's test machines have a chance to pass on slower
architectures while package builds catch up.
jsing [Tue, 10 May 2022 18:40:06 +0000 (18:40 +0000)]
Rewrite asn1_item_ex_d2i() using CBS.
This requires a few wrappers to call into some non-CBS functions, however
we can now remove the asn1_d2i_ex_primitive() wrapper as there are no
longer any non-CBS callers.
ok tb@
kettenis [Tue, 10 May 2022 18:04:50 +0000 (18:04 +0000)]
Convert KVA allocation to km_alloc(9).
ok mpi@
bluhm [Tue, 10 May 2022 16:56:16 +0000 (16:56 +0000)]
Our read/write lock implementation was not fair to writers. When
multiple IP forwarding threads were processing packets and holding
the shared net lock, the exclusive net lock was blocked permanently.
This could result in ping times well above 10 seconds.
Add the RWLOCK_WRWANT bit to the check mask of readers. Then they
cannot grab the lock if a writer is also waiting. This logic was
already present in revision 1.3, but got lost during refactoring.
When exiting the lock, there exists a race when the RWLOCK_WRWANT
bit gets deleted. Add a comment that was present until revision
1.8 to document it. The race itself is not easy to fix and had no
impact during testing.
OK sashan@
tb [Tue, 10 May 2022 16:43:53 +0000 (16:43 +0000)]
Fix a couple of typos in doc comments, bunch of KNF (whitespace) tweaks
tb [Tue, 10 May 2022 16:17:07 +0000 (16:17 +0000)]
Deserialize IPAddrBlocks in libcrypto
Let the RFC 3779 code in libcrypto do its job: deserialize the IPAddrBlocks
extension using X509V3_EXT_d2i() and then simply walk the returned struct.
This replaces quite a bit of low level ASN.1 fiddling with much simpler
reaching into structs with names that have some meaning.
ok claudio
tb [Tue, 10 May 2022 15:45:04 +0000 (15:45 +0000)]
Fix leaks due to incorrect early returns rather than proper cleanup.
ok claudio job
job [Tue, 10 May 2022 10:52:09 +0000 (10:52 +0000)]
Confirm the absense of the Basic Constraints extension in non-CA certs
with and OK tb@
bluhm [Tue, 10 May 2022 09:42:32 +0000 (09:42 +0000)]
The tests no-symlink and oldlib2 pass now. Do not expect failure.
stsp [Tue, 10 May 2022 09:11:44 +0000 (09:11 +0000)]
Fix reading of the MAC address on AX210 devices.
wrong MAC address issue spotted by jsg@ and kevlo@
ok kevlo@
stsp [Tue, 10 May 2022 08:20:36 +0000 (08:20 +0000)]
Make run(4) attach to RT5372 devices.
Patch by molotov31337 on tech@
stsp [Tue, 10 May 2022 08:20:07 +0000 (08:20 +0000)]
regen
stsp [Tue, 10 May 2022 08:19:51 +0000 (08:19 +0000)]
add USB device ID of RT5372 for run(4); patch by molotov31337 on tech@
tb [Tue, 10 May 2022 07:41:37 +0000 (07:41 +0000)]
Validate RSC filenames
Factor out POSIX portable filename check into a new valid_filename() and
rename the previous valid_filename() to valid_mft_filename(). Fixes and
supersedes imcomplete checks in the RSC code. Avoids truncation via
strndup() in case of embedded NULs.
input/ok claudio
job [Tue, 10 May 2022 07:28:43 +0000 (07:28 +0000)]
Improve control flow readability by removing 'else if' stanzas
OK tb@ claudio@
jmc [Tue, 10 May 2022 05:30:33 +0000 (05:30 +0000)]
update the iwx entry;
jsg [Tue, 10 May 2022 05:25:57 +0000 (05:25 +0000)]
spelling
from Ted Bullock
jsing [Tue, 10 May 2022 05:19:22 +0000 (05:19 +0000)]
Remove ASN.1 combining.
This was an option used to combine ASN.1 into a single structure, which was
only ever used by DSAPublicKey and X509_ATTRIBUTE. Since they no longer use
it we can mop this up and simplify all of the related code.
ok tb@
krw [Tue, 10 May 2022 00:56:27 +0000 (00:56 +0000)]
Align fdisk with the logic used in the kernel and allow the
protective EFI GPT partition to be in MBR partitions 0-3, not
just the default partition 0.
deraadt [Mon, 9 May 2022 22:43:57 +0000 (22:43 +0000)]
delete ftplist2 (the old ftplist IP address). We've talked loudly about a
more distributed way of doing something smart and failovery, but this
annotation in the script isn't helping.
deraadt [Mon, 9 May 2022 22:42:53 +0000 (22:42 +0000)]
In a couple places, use set -m to cause subshells to gain process
groups, and then kill the process group instead of the ksh pid. Some
of these processes contain sleep, which kept running, and in some
cases retained stderr (or other fd) and confused parent processes.
In some cases, add manual wait. Finally, store the pid (nee pgrp)
in /tmp/xxpid files rather than variables, since there is a bit
of recursion and sub-shell confusion happening, and we have confused
ourselves at least twice with these pid variables not being in scope.
ok beck, with florian, ok kn
In snaps for almost a week. A few more tweaks may come in a while.
stsp [Mon, 9 May 2022 22:02:31 +0000 (22:02 +0000)]
update iwx(4) man page in light of AX210/AX211 support
stsp [Mon, 9 May 2022 21:57:26 +0000 (21:57 +0000)]
Add support for AX210/AX211 devices to iwx(4).
Firmware is available in fw_update(8) as of iwx-firmware-
20220110.
Tested for regressions on AX200/AX201 by jmc, kettenis, and myself.
Tested on AX210 by abieber (framework laptop) and myself, both using
a device which loads ty-ao-gf-a0 firmware.
AX210/AX211 devices which load the following firmware files should
work but could not yet be tested due to lack of hardware:
iwx-so-a0-gf-a0-67, iwx-so-a0-gf4-a0-67, iwx-so-a0-jf-b0-64
sthen [Mon, 9 May 2022 21:48:00 +0000 (21:48 +0000)]
Mention in the "proto icmp" section that standard stateful rules (i.e. the
default type of PF rule) don't allow ICMP responses unless they match an
existing state - tweak "keep state (sloppy)" to suggest from the first
sentence of the paragraph that it affects more than TCP. ok sashan@ bluhm@
sashan [Mon, 9 May 2022 20:29:23 +0000 (20:29 +0000)]
pf.conf(5) should mention impact of sloppy state handling on ICMP
OK @bluhm
bluhm [Mon, 9 May 2022 19:33:46 +0000 (19:33 +0000)]
Protect sbappendaddr() in divert_packet() with kernel lock. With
divert-packet rules pf calls directly from IP layer to protocol
layer. As the former has only shared net lock, additional protection
against parallel access is needed. Kernel lock is a temporary
workaround until the socket layer is MP safe.
discussed with kettenis@ mvs@
jsing [Mon, 9 May 2022 19:19:33 +0000 (19:19 +0000)]
Simplify X509_ATTRIBUTE ASN.1 encoding.
For some unknown historical reason, X509_ATTRIBUTE allows for a single
ASN.1 value or an ASN.1 SET OF, rather than requiring an ASN.1 SET OF.
Simplify encoding and remove support for single values - this is similar
to OpenSSL
e20b57270dec.
This removes the last use of COMBINE in the ASN.1 decoder.
ok tb@
job [Mon, 9 May 2022 17:20:25 +0000 (17:20 +0000)]
Add RSC regress bits
tb [Mon, 9 May 2022 17:19:32 +0000 (17:19 +0000)]
Drop prototype of currently nonexistent function.
tb [Mon, 9 May 2022 17:13:06 +0000 (17:13 +0000)]
Commit file missed in previous.
job [Mon, 9 May 2022 17:02:34 +0000 (17:02 +0000)]
Add preliminary support for decoding RSC objects in filemode
This implements decoding support for draft-ietf-sidrops-rpki-rsc-06
There are three major outstanding issues:
* The wire image might still change to conform to the more widely deployed
3779 API in libressl/openssl. IETF discussion ongoing.
* Whether the resources listed in the ResourceBlock are contained within
the EE's RFC 3779 extension is not hooked up yet.
* There is a fair bit of duplicity between rsc.c and cert.c, look for XXX
OK tb@
krw [Mon, 9 May 2022 15:09:50 +0000 (15:09 +0000)]
Replace a stray 0xA6 with DOSPTYP_OPENBSD. Tweak a ">= 2" to more
obvious "> 1". Use easier to spot 'ask_yn() == 0' instead of
'!ask_yn()'.
No functional change.
visa [Mon, 9 May 2022 14:49:55 +0000 (14:49 +0000)]
Revert "Replace selwakeup() with KNOTE() in pipe and socket event activation."
The commit caused hangs with NFS.
Reported by ajacoutot@ and naddy@
stsp [Mon, 9 May 2022 12:28:27 +0000 (12:28 +0000)]
regen
stsp [Mon, 9 May 2022 12:27:40 +0000 (12:27 +0000)]
add another iwx(4) product ID (presumably AX211, marketing name differs)
jsg [Mon, 9 May 2022 09:05:48 +0000 (09:05 +0000)]
drm/i915: Fix SEL_FETCH_PLANE_*(PIPE_B+) register addresses
From Imre Deak
4e308b21bc16231c90112d839859c9e38f7ef986 in linux 5.15.y/5.15.38
4ae4dd2e26fdfebf0b8c6af6c325383eadfefdb4 in mainline linux
jsg [Mon, 9 May 2022 09:00:01 +0000 (09:00 +0000)]
drm/i915: Check EDID for HDR static metadata when choosing blc
From Jouni Hogander
67434e132b8c9d3fb59f0bc27da6d0a0488cf92b in linux 5.15.y/5.15.38
c05d8332f5d23fa3b521911cbe55a2b67fb21248 in mainline linux
jsg [Mon, 9 May 2022 08:57:21 +0000 (08:57 +0000)]
drm/amd/display: Fix memory leak in dcn21_clock_source_create
From Miaoqian Lin
815b847af99d8b78131174fa1c32da0195c70e4c in linux 5.15.y/5.15.38
65e54987508b6f0771f56bdfa3ee1926d52785ae in mainline linux
jsg [Mon, 9 May 2022 08:54:36 +0000 (08:54 +0000)]
drm/amdkfd: Fix GWS queue count
From David Yat Sin
ce9be3baec9b58b3f6e4c721e6498ecfc37e5834 in linux 5.15.y/5.15.38
7c6b6e18c890f30965b0589b0a57645e1dbccfde in mainline linux
espie [Mon, 9 May 2022 08:29:04 +0000 (08:29 +0000)]
shadowing variables is a bad idea (thanks Anton, this fixes regress)
also fix a logic error (that's very unlikely to happen outside of broken
scenarios, but we still want to have things work correctly in that
context)
dtucker [Mon, 9 May 2022 08:25:27 +0000 (08:25 +0000)]
Remove errant apostrophe. From haruyama at queen-ml org.
djm [Mon, 9 May 2022 03:09:53 +0000 (03:09 +0000)]
Allow existing -U (use agent) flag to work with "-Y sign" operations,
where it will be interpreted to require that the private keys is
hosted in an agent; bz3429, suggested by Adam Szkoda; ok dtucker@
deraadt [Sun, 8 May 2022 23:54:10 +0000 (23:54 +0000)]
Software we import from outside tends to bloat faster than software we
write ourselves. This is a sad fact. libz just did this to us, again.
I don't care to hunt for reasons or justifications because it is an
endless battle.
Therefore this tiny (floppy) media can no longer include the TZ files.
Because some other architectures also have tight media, we have an
install script mechanism to cope with this -- when they are missing, it
asks the timezone question later, after the base set is installed with
the files)
djm [Sun, 8 May 2022 22:58:35 +0000 (22:58 +0000)]
improve error message when 'ssh-keygen -Y sign' is unable to load a
private key; bz3429, reported by Adam Szkoda ok dtucker@
djm [Sun, 8 May 2022 22:32:36 +0000 (22:32 +0000)]
When performing operations that glob(3) a remote path, ensure that the
implicit working directory used to construct that path escapes glob(3)
characters.
This prevents glob characters from being processed in places they
shouldn't, e.g. "cd /tmp/a*/", "get *.txt" should have the get operation
treat the path "/tmp/a*" literally and not attempt to expand it.
Reported by Lusia Kundel; ok markus@
tb [Sun, 8 May 2022 21:00:10 +0000 (21:00 +0000)]
sync
tb [Sun, 8 May 2022 20:59:32 +0000 (20:59 +0000)]
Remove openssl/cterr.h and inline it in openssl/ct.h
ok jsing
tobhe [Sun, 8 May 2022 20:26:31 +0000 (20:26 +0000)]
Move ikev2_reset_alive_timer() to a place where it makes more sense. The idea
is to renew the timer every time sc_alive_timeout is reset after loading a new
config.
ok patrick@
tb [Sun, 8 May 2022 19:03:31 +0000 (19:03 +0000)]
Default Ruby is now 3.1
krw [Sun, 8 May 2022 18:01:23 +0000 (18:01 +0000)]
Rename gt_protected field of struct gpt_type to gt_attr and
#define GTATTR_PROTECT and GTATTR_PROTECT_EFISYS as bits in it.
Use GTATTR_PROTECT to replace the magic value of '1' indicating
the partition is protected. Use GTATTR_PROTECT_EFISYS to replace
hack of checking for "APFS" string in the names of partitions
that want the EFI System (a.k.a. 0xEF) partition to be preserved.
More flexible and easier to extend protections to new partition
types or add new attributes to partition types.
No intentional functional change.
dv [Sun, 8 May 2022 14:44:54 +0000 (14:44 +0000)]
vmd: fix rebooting a received vm
Rebooting a received vm resulted in vmd(8) exiting as a result of
flawed state tracking in the parent process.
When stopping a vm, clear the VM_RECEIVE_STATE flag. When starting
a vm, make sure the parent process collapses any existing memory
ranges after the vm is sent to the vmm process (responsible for
launching the vm).
ok mlarkin@
tb [Sun, 8 May 2022 14:11:12 +0000 (14:11 +0000)]
Adjust regress after zlib update. Part of the following commit:
commit
0d36ec47f310478549c0864f215ab5c0114c49ba
Author: Mark Adler <madler@alumni.caltech.edu>
Date: Wed Jan 2 18:10:40 2019 -0800
Don't bother computing check value after successful inflateSync().
tb [Sun, 8 May 2022 14:09:10 +0000 (14:09 +0000)]
sync
tb [Sun, 8 May 2022 14:08:31 +0000 (14:08 +0000)]
Bump minor after symbol addition
tb [Sun, 8 May 2022 14:07:54 +0000 (14:07 +0000)]
Backport an upstream fix for CRC calculation. This fixes Java applications
on some older hardware, see https://github.com/madler/zlib/issues/613
Pointed out by tj and sthen
commit
ec3df00224d4b396e2ac6586ab5d25f673caa4c2
Author: Mark Adler <madler@alumni.caltech.edu>
Date: Wed Mar 30 11:14:53 2022 -0700
Correct incorrect inputs provided to the CRC functions.
The previous releases of zlib were not sensitive to incorrect CRC
inputs with bits set above the low 32. This commit restores that
behavior, so that applications with such bugs will continue to
operate as before.
tb [Sun, 8 May 2022 14:07:35 +0000 (14:07 +0000)]
Backport an upstream fix for CRC calculation. This fixes Java applications
on some older hardware, see https://github.com/madler/zlib/issues/613
Pointed out by tj and sthen
commit
ec3df00224d4b396e2ac6586ab5d25f673caa4c2
Author: Mark Adler <madler@alumni.caltech.edu>
Date: Wed Mar 30 11:14:53 2022 -0700
Correct incorrect inputs provided to the CRC functions.
The previous releases of zlib were not sensitive to incorrect CRC
inputs with bits set above the low 32. This commit restores that
behavior, so that applications with such bugs will continue to
operate as before.
tb [Sun, 8 May 2022 14:05:29 +0000 (14:05 +0000)]
Update to zlib 1.2.12
Build tests by myself for amd64 and arm64, sthen and inoguchi for i386
and gkoehler for macppc and powerpc64, thanks!
Detailed changelog is part of the committed diff.
tb [Sun, 8 May 2022 14:04:21 +0000 (14:04 +0000)]
Update to zlib 1.2.12
Build tests by myself for amd64 and arm64, sthen and inoguchi for i386
and gkoehler for macppc and powerpc64, thanks!
Detailed changelog is part of the committed diff.
krw [Sun, 8 May 2022 13:33:01 +0000 (13:33 +0000)]
Shuffle local helper function declarations and definitions into
one easy to find spot. Wrap the long lines of gpt_types[] to
make room for future expansion.
No functional change.
espie [Sun, 8 May 2022 13:31:40 +0000 (13:31 +0000)]
get rid of horribly complex optimization that's no longer relevant.
For update-info, we used to try to stop reading the CONTENTS file from
the stream as soon as we had enough, but
- most update-info will be cached
- the ones that won't are @option always-update, so they need the full
plist anyway
- most packages are signed, so we need a full 64KB of data to check the hash.
espie [Sun, 8 May 2022 13:21:04 +0000 (13:21 +0000)]
better abstraction: instead of storing a string we're going to parse for
signature dates, just annotate the PackageLocation with the info,
and decorate the PackingList itself when we finished reading it from the
location
espie [Sun, 8 May 2022 11:42:28 +0000 (11:42 +0000)]
show actual linking operations alongside renames if verbose >= 5
espie [Sun, 8 May 2022 11:06:06 +0000 (11:06 +0000)]
now we no longer go through temporary files when names don't change,
make the matching algorithm between the old and the new package more
precise: keep a list of matching checksums, instead of just one candidate.
For starters, empty files will always yield the same checksum, but it seems
some software (python for instance) loves installing multiple copies of
the same file. This does prevent 500 "name mismatches" out of 2500 in
python-3.9, for instance.
tb [Sat, 7 May 2022 17:20:41 +0000 (17:20 +0000)]
Sort alphabetically so that future omissions will be easier to spot.
discussed with jsing
jsing [Sat, 7 May 2022 15:50:25 +0000 (15:50 +0000)]
Split asn1_item_ex_d2i() into three.
Factor out the handling of CHOICE and SEQUENCE into their own functions.
This reduces complexity, reduces indentation and will allow for further
clean up.
ok beck@ tb@
krw [Sat, 7 May 2022 11:45:36 +0000 (11:45 +0000)]
Now that the internal versions of GPT partitions are host-endian,
simplify PRT_protected_guid() by comparing GUID's with
uuid_compare() rather than converting them to strings and using
strncmp().
Further clarify logic by doing the EFI Sys dance only if
the GUID being tested is not marked as protected.
No intentional functional change.
tb [Sat, 7 May 2022 10:31:54 +0000 (10:31 +0000)]
zap stray tab
tb [Sat, 7 May 2022 10:31:28 +0000 (10:31 +0000)]
KNF nits
jsing [Sat, 7 May 2022 10:13:56 +0000 (10:13 +0000)]
Rewrite asn1_d2i_ex_primitive() with CBS.
ok tb@
jsing [Sat, 7 May 2022 10:03:49 +0000 (10:03 +0000)]
Refactor asn1_ex_c2i()
The asn1_ex_c2i() function currently handles the V_ASN1_ANY case inline,
which means there multiple special cases, with pointer fudging and
restoring. Instead, split asn1_ex_c2i() into three functions - one that
only handles storage into a primitive type (asn1_ex_c2i_primitive()), one
that handles the V_ASN1_ANY case (asn1_ex_c2i_any()) and calls
asn1_ex_c2i_primitive() with the correct pointer and an asn1_ex_c2i()
that handles the custom functions case, before dispatching to
asn1_ex_c2i_any() or asn1_ex_c2i_primitive(), as appropriate.
This results in cleaner and simpler code.
With input from and ok tb@
jsing [Sat, 7 May 2022 07:47:24 +0000 (07:47 +0000)]
Avoid strict aliasing violations in BN_nist_mod_*()
The optimised code path switches from processing data via unsigned long to
processing data via unsigned int, which requires type punning. This is
currently attempted via a union (for one case), however this fails since
a pointer to a union member is passed to another function (these unions
were added to "fix strict-aliasing compiler warning" - it would seem the
warnings stopped but the undefined behaviour remained). The second case
does not use a union and simply casts from one type to another.
Undefined behaviour is currently triggered when compiling with clang 14
using -03 and -fstrict-aliasing, while disabling assembly (in order to use
this C code). The resulting binary produces incorrect results.
Avoid strict aliasing violations by copying from an unsigned long array to
an unsigned int array, then copying back the result. Any sensible compiler
will omit the copies, while avoiding undefined behaviour that would result
from unsafe type punning via pointer type casting.
Thanks to Guido Vranken for reporting the issue and testing the fix.
ok tb@