openbsd
2 years agocontoller -> controller
jsg [Sun, 2 Jan 2022 05:32:00 +0000 (05:32 +0000)]
contoller -> controller

2 years agophsyaddr -> physaddr
jsg [Sun, 2 Jan 2022 05:30:07 +0000 (05:30 +0000)]
phsyaddr -> physaddr

2 years agospelling
jsg [Sun, 2 Jan 2022 05:00:28 +0000 (05:00 +0000)]
spelling

2 years agoaddres -> address
jsg [Sun, 2 Jan 2022 03:41:08 +0000 (03:41 +0000)]
addres -> address

2 years agounhandle -> unhandled
jsg [Sun, 2 Jan 2022 02:31:08 +0000 (02:31 +0000)]
unhandle -> unhandled

2 years agoslignment -> alignment
jsg [Sun, 2 Jan 2022 02:26:50 +0000 (02:26 +0000)]
slignment -> alignment

2 years agopreferense -> preference
jsg [Sun, 2 Jan 2022 02:13:33 +0000 (02:13 +0000)]
preferense -> preference

2 years agoplaform -> platform
jsg [Sun, 2 Jan 2022 01:59:42 +0000 (01:59 +0000)]
plaform -> platform

2 years agoDon't use *ENTRY_NB() with END_BUILTIN(), at least yet
guenther [Sun, 2 Jan 2022 01:20:25 +0000 (01:20 +0000)]
Don't use *ENTRY_NB() with END_BUILTIN(), at least yet

Problem noted by naddy@

2 years agoestablush -> establish
jsg [Sun, 2 Jan 2022 01:01:04 +0000 (01:01 +0000)]
establush -> establish

2 years agoAdd ENTRY_NB() macro for doing an ASM function entry without setting
guenther [Sat, 1 Jan 2022 23:47:14 +0000 (23:47 +0000)]
Add ENTRY_NB() macro for doing an ASM function entry without setting
the binding to global (NB == "no binding"), as clang 13 is now
warning about changing the binding from global to weak.

This first pass does amd64 and sparc64 and pulls DEFS.h out of the
per-arch directory to a common directory; others to follow

ok kettenis@

2 years agoRevert the hack for Apple M1 systems.
kettenis [Sat, 1 Jan 2022 18:54:09 +0000 (18:54 +0000)]
Revert the hack for Apple M1 systems.

ok patrick@

2 years agoRewrite the kernel FPU handling code. The new code saves the FPU state
kettenis [Sat, 1 Jan 2022 18:52:36 +0000 (18:52 +0000)]
Rewrite the kernel FPU handling code.  The new code saves the FPU state
in cpu_switch() instead of at the kernel edge and gets rid of the FPU
state tracking in struct cpu_info and struct pcb.  This fixes the random
crashes seen with SMP kernels on Apple M1.

ok patrick@

2 years agoUse correct defines for random seed magic/length.
patrick [Sat, 1 Jan 2022 18:52:26 +0000 (18:52 +0000)]
Use correct defines for random seed magic/length.

Spotted by Andreas Schnebinger

2 years agouniq(1): miscellaneous style(9)-ish stuff
cheloha [Sat, 1 Jan 2022 18:20:52 +0000 (18:20 +0000)]
uniq(1): miscellaneous style(9)-ish stuff

- Include what you use:
  + Add <strings.h> for strcasecmp(3).
  + Drop <errno.h>, unused.
- Pull the "errstr" declaration out of the getopt(3) loop
  up to the top of main().
- Align the strtonum(3) error messages with the argument
  names in the uniq.1 manpage and the usage string.  They
  are referred to as "chars" and "fields".
- Trim some whitespace.
- Return from main() instead of exit(3).
- De-(void) fprintf(3).
- Prefer getprogname(3) to __progname.

2 years agouniq(1): bump numchars, numfields from int to long long
cheloha [Sat, 1 Jan 2022 17:44:18 +0000 (17:44 +0000)]
uniq(1): bump numchars, numfields from int to long long

Also bump repeats from int to unsigned long long.

While here, don't cast the result of strtonum() and unwrap some lines.

2 years agoRemove unused function prototype.
kettenis [Sat, 1 Jan 2022 14:18:39 +0000 (14:18 +0000)]
Remove unused function prototype.

2 years agoAdd missing locking to pmap_extract(9) and pmap_unwire(9).
kettenis [Sat, 1 Jan 2022 11:45:35 +0000 (11:45 +0000)]
Add missing locking to pmap_extract(9) and pmap_unwire(9).

ok patrick@, mpi@

2 years agoMultiprocol -> Multiprotocol
jsg [Sat, 1 Jan 2022 08:10:29 +0000 (08:10 +0000)]
Multiprocol -> Multiprotocol

2 years agoIdentifiier -> Identifier
jsg [Sat, 1 Jan 2022 08:01:27 +0000 (08:01 +0000)]
Identifiier -> Identifier

2 years agocopyright++;
jsg [Sat, 1 Jan 2022 07:00:57 +0000 (07:00 +0000)]
copyright++;

2 years agospelling
jsg [Sat, 1 Jan 2022 05:55:06 +0000 (05:55 +0000)]
spelling

2 years agofix memleak in process_extension(); oss-fuzz issue #42719
djm [Sat, 1 Jan 2022 04:18:06 +0000 (04:18 +0000)]
fix memleak in process_extension(); oss-fuzz issue #42719

2 years agoeascape -> escape
jsg [Sat, 1 Jan 2022 03:59:22 +0000 (03:59 +0000)]
eascape -> escape

2 years agoapprociate -> appropriate
jsg [Sat, 1 Jan 2022 03:57:20 +0000 (03:57 +0000)]
approciate -> appropriate

2 years agofailured -> failed
jsg [Sat, 1 Jan 2022 02:44:22 +0000 (02:44 +0000)]
failured -> failed

2 years agouniq(1): freopen(3) stdin, stdout
cheloha [Sat, 1 Jan 2022 02:20:38 +0000 (02:20 +0000)]
uniq(1): freopen(3) stdin, stdout

uniq(1) defaults to stdin and stdout, has exactly one input and one
output, and permits the user to replace the default input and/or the
default output with a given file.

freopen(3) is the right idiom in this context.  Get rid of file() and
the extra FILE pointers.  Switch from fprintf(3) to printf(3).

While here, const the "str" argument to show().

Thread: https://marc.info/?l=openbsd-tech&m=164078603312936&w=2

ok millert@

2 years agocontibutions -> contributions
jsg [Sat, 1 Jan 2022 02:18:28 +0000 (02:18 +0000)]
contibutions -> contributions

2 years agoidentfier -> identifier
jsg [Sat, 1 Jan 2022 02:06:07 +0000 (02:06 +0000)]
identfier -> identifier

2 years agospelling
jsg [Sat, 1 Jan 2022 01:55:30 +0000 (01:55 +0000)]
spelling
ok dtucker@

2 years agospelling
jsg [Fri, 31 Dec 2021 23:19:50 +0000 (23:19 +0000)]
spelling
ok ratchov@

2 years agoexcpetions -> exceptions
jsg [Fri, 31 Dec 2021 22:40:40 +0000 (22:40 +0000)]
excpetions -> exceptions

2 years agodeafult -> default
jsg [Fri, 31 Dec 2021 22:38:01 +0000 (22:38 +0000)]
deafult -> default

2 years agoTry to turn on less-capable mouse modes when turning on more-capable, to
nicm [Fri, 31 Dec 2021 11:35:49 +0000 (11:35 +0000)]
Try to turn on less-capable mouse modes when turning on more-capable, to
increase the chances we get something even if the terminal doesn't support
the one we really want. GitHub issue 3020.

2 years agoInterrups -> Interrupts
jsg [Fri, 31 Dec 2021 11:24:24 +0000 (11:24 +0000)]
Interrups -> Interrupts

2 years agoAdd missing locking to pmap_extract(9) and pmap_unwire(9).
kettenis [Fri, 31 Dec 2021 11:21:45 +0000 (11:21 +0000)]
Add missing locking to pmap_extract(9) and pmap_unwire(9).

ok patrick@, mpi@

2 years agoavaialble -> available
jsg [Fri, 31 Dec 2021 10:44:05 +0000 (10:44 +0000)]
avaialble -> available

2 years agospecifed -> specified
jsg [Fri, 31 Dec 2021 10:40:30 +0000 (10:40 +0000)]
specifed -> specified

2 years agoNewer Apple firmware on chipsets without a hardware RNG require the host to
patrick [Fri, 31 Dec 2021 09:24:18 +0000 (09:24 +0000)]
Newer Apple firmware on chipsets without a hardware RNG require the host to
provide a buffer of random bytes to the device on initialization.

2 years agoFix up handling of IFF_ALLMULTI and call uaq_iff() from uaq_init().
jmatthew [Fri, 31 Dec 2021 08:15:47 +0000 (08:15 +0000)]
Fix up handling of IFF_ALLMULTI and call uaq_iff() from uaq_init().

from Brad

2 years agotypo: p5-Socket-SSL -> p5-IO-Socket-SSL
dv [Thu, 30 Dec 2021 20:51:34 +0000 (20:51 +0000)]
typo: p5-Socket-SSL -> p5-IO-Socket-SSL
ok kn@

2 years agorelayd(8): don't create sockets between CAs and RELAYs.
dv [Thu, 30 Dec 2021 20:38:43 +0000 (20:38 +0000)]
relayd(8): don't create sockets between CAs and RELAYs.

CA and RELAY process types don't need to communicate with other CA
or RELAY processes respectively, so don't create and distribute ipc
socketpairs.

Tested by and ok denis@

2 years agoAdd Xiaomi MiniWif to list of devices supported by mtw(4).
kevlo [Thu, 30 Dec 2021 15:09:49 +0000 (15:09 +0000)]
Add Xiaomi MiniWif to list of devices supported by mtw(4).
Works for me on amd64.

ok hastings@

2 years agoUse a distinct variable while iterating the list of existing devices.
anton [Thu, 30 Dec 2021 14:25:39 +0000 (14:25 +0000)]
Use a distinct variable while iterating the list of existing devices.

ok mvs@

Reported-by: syzbot+e2d1df67f742a5a47938@syzkaller.appspotmail.com
Reported-by: syzbot+72298724beda82ec8e7f@syzkaller.appspotmail.com
2 years agoSync from libc: Use _MAX_PAGE_SHIFT, rather than #ifdef mips64
guenther [Thu, 30 Dec 2021 08:39:19 +0000 (08:39 +0000)]
Sync from libc: Use _MAX_PAGE_SHIFT, rather than #ifdef mips64

ok otto@

2 years agoSync rcexec with reality.
ajacoutot [Thu, 30 Dec 2021 08:14:29 +0000 (08:14 +0000)]
Sync rcexec with reality.

2 years agoAdd back support for -B net -b bsd.rd which emulates a PXE install and
claudio [Thu, 30 Dec 2021 08:12:23 +0000 (08:12 +0000)]
Add back support for -B net -b bsd.rd which emulates a PXE install and
results in an autoinstall. This can be used to quickly create new OpenBSD
installs.
OK dv@

2 years agominor tweak
anton [Thu, 30 Dec 2021 06:55:37 +0000 (06:55 +0000)]
minor tweak

2 years agoPrevent a double free by assigning the new keymap and corresponding size
anton [Thu, 30 Dec 2021 06:55:11 +0000 (06:55 +0000)]
Prevent a double free by assigning the new keymap and corresponding size
after the allocation and initialization is done. Otherwise, a race is
possible if malloc ends up sleeping.

ok sashan@

Reported-by: syzbot+7f8224e9f1a3487caf25@syzkaller.appspotmail.com
2 years agoDelete dead (duplicate) test
guenther [Thu, 30 Dec 2021 04:48:13 +0000 (04:48 +0000)]
Delete dead (duplicate) test

2 years agoPrevent concurrent access to incomplete or dying `sc' caused by sleep
mvs [Thu, 30 Dec 2021 00:49:41 +0000 (00:49 +0000)]
Prevent concurrent access to incomplete or dying `sc' caused by sleep
points in pppacopen() and pppacclose() paths. Use the same "sc_ready"
logic we use for 'pppx_if' structure.

Reported-by: syzbot+a7ac144b48f7f471f689@syzkaller.appspotmail.com
ok anton@ dlg@

2 years agocombine ifdef blocks
jsg [Thu, 30 Dec 2021 00:25:41 +0000 (00:25 +0000)]
combine ifdef blocks
from Ted Bullock

2 years agoPlug memleaks
tb [Wed, 29 Dec 2021 23:04:12 +0000 (23:04 +0000)]
Plug memleaks

CID 345150

2 years agoPlug memleak
tb [Wed, 29 Dec 2021 23:02:52 +0000 (23:02 +0000)]
Plug memleak

CID 345156

2 years agoMore EVP_* return value checks
tb [Wed, 29 Dec 2021 23:02:00 +0000 (23:02 +0000)]
More EVP_* return value checks

CID 345152

2 years agoRemove redundant NULL checks
tb [Wed, 29 Dec 2021 23:00:32 +0000 (23:00 +0000)]
Remove redundant NULL checks

CID 345154

2 years agoMinor cleanup after EC_POINT_get_affine_coordinates() unified the
tb [Wed, 29 Dec 2021 22:58:40 +0000 (22:58 +0000)]
Minor cleanup after EC_POINT_get_affine_coordinates() unified the
_GFp and _GF2m variants.

CID 345155

2 years agoMore return value checks for EVP_* API
tb [Wed, 29 Dec 2021 22:56:25 +0000 (22:56 +0000)]
More return value checks for EVP_* API

CID 345159

2 years agoCheck return values of EVP_* API
tb [Wed, 29 Dec 2021 22:54:41 +0000 (22:54 +0000)]
Check return values of EVP_* API

CID 345158

2 years agoknfmt makes this slightly nicer.
tb [Wed, 29 Dec 2021 22:53:04 +0000 (22:53 +0000)]
knfmt makes this slightly nicer.

2 years agoOne more leak of the same kind
tb [Wed, 29 Dec 2021 22:50:30 +0000 (22:50 +0000)]
One more leak of the same kind

2 years agoPlug memleak
tb [Wed, 29 Dec 2021 22:49:23 +0000 (22:49 +0000)]
Plug memleak

CID 345160

2 years agoSet failed in test_random_points()
tb [Wed, 29 Dec 2021 22:48:09 +0000 (22:48 +0000)]
Set failed in test_random_points()

CID 345141

2 years agomake the argument name for veb's "child-iface" consistent;
jmc [Wed, 29 Dec 2021 21:41:28 +0000 (21:41 +0000)]
make the argument name for veb's "child-iface" consistent;
from caspar schutijser

2 years agoConsistently name page argument `pg'.
mpi [Wed, 29 Dec 2021 20:22:06 +0000 (20:22 +0000)]
Consistently name page argument `pg'.

Reduce differences with NetBSD, no functional changes.

2 years agoAdd regress tests for grep -A, -B and -C flags
sdk [Wed, 29 Dec 2021 19:31:01 +0000 (19:31 +0000)]
Add regress tests for grep -A, -B and -C flags

ok otto@

2 years agoPHYs that we want to talk to over SGMII need to be switched into SGMII
patrick [Wed, 29 Dec 2021 18:48:45 +0000 (18:48 +0000)]
PHYs that we want to talk to over SGMII need to be switched into SGMII
mode for the link to go up.  This is relevant on RJ45 SFPs.

ok sthen@

2 years agoMention attachment and reference to acpi(4).
patrick [Wed, 29 Dec 2021 18:44:52 +0000 (18:44 +0000)]
Mention attachment and reference to acpi(4).

2 years agoEnable ohci(4) and ehci(4) at acpi(4).
patrick [Wed, 29 Dec 2021 18:40:48 +0000 (18:40 +0000)]
Enable ohci(4) and ehci(4) at acpi(4).

2 years agoAllow ohci(4) and ehci(4) to attach to acpi(4).
patrick [Wed, 29 Dec 2021 18:40:19 +0000 (18:40 +0000)]
Allow ohci(4) and ehci(4) to attach to acpi(4).

ok kettenis@

2 years agoacpi_intr_disestablish() is available on all our ACPI platforms which
patrick [Wed, 29 Dec 2021 17:52:22 +0000 (17:52 +0000)]
acpi_intr_disestablish() is available on all our ACPI platforms which
support interrupts via ACPI, so there's need for an ifdef around it.

ok kettenis@

2 years agoCleanup struct entity. Remove the unneeded has_data field, the same
claudio [Wed, 29 Dec 2021 11:37:57 +0000 (11:37 +0000)]
Cleanup struct entity. Remove the unneeded has_data field, the same
information can be figured out by looking at the data pointer itself.
It is NULL when there is no data and not-NULL if there is data.
OK benno@

2 years agoMerge multiple similar code bits together into repo_done(). Which currently
claudio [Wed, 29 Dec 2021 11:35:23 +0000 (11:35 +0000)]
Merge multiple similar code bits together into repo_done(). Which currently
finds all repos that point to the passed backend and flushes their queues.
Also make sure that REPO_FAILED is set in cases where no sync happened and
also fall back from rrdp to rsync in any case of failure (including errors
merging the rrdp repo itself).
OK tb@

2 years agoEnsure file descriptor send/receive is not allowed.
anton [Wed, 29 Dec 2021 07:16:30 +0000 (07:16 +0000)]
Ensure file descriptor send/receive is not allowed.

2 years agoDo not allow send/receive of kcov descriptors as the file descriptor can
anton [Wed, 29 Dec 2021 07:15:13 +0000 (07:15 +0000)]
Do not allow send/receive of kcov descriptors as the file descriptor can
be kept alive longer than expected causing syzkaller to no longer being
able to enable remote coverage.

ok visa@

Reported-by: syzbot+ab2016d729cda7b0d003@syzkaller.appspotmail.com
2 years agoTweak some DEBUG output.
krw [Wed, 29 Dec 2021 00:04:45 +0000 (00:04 +0000)]
Tweak some DEBUG output.

Always put '0x' prefix in front of displayed hex values,
i.e. the checksums.

Add missing letoh32() so bad endian checksum is clear.

Be consistent when displaying 'expected' and 'got' checksums,
i.e. 'expected' == calculated checksum and 'got' == checksum
found in GPT.

2 years agoAdd unp_dispose() threads to 'unsopassgc' test.
mvs [Wed, 29 Dec 2021 00:04:35 +0000 (00:04 +0000)]
Add unp_dispose() threads to 'unsopassgc' test.

2 years agoTweak some DEBUG output.
krw [Tue, 28 Dec 2021 23:44:02 +0000 (23:44 +0000)]
Tweak some DEBUG output.

'EFI PART' reads better than "TRAP IFE" and
checksums are easier to read/compare when shown
in hex rather than decimal.

Prompted by recent GPT vs disklabel misc@ thread
concerning  Rob Whitlock's problematic GPT.

2 years agowhitespace tweak, no functional change.
dlg [Tue, 28 Dec 2021 23:13:20 +0000 (23:13 +0000)]
whitespace tweak, no functional change.

2 years agoit doesnt make sense to configure a vport as a span port.
dlg [Tue, 28 Dec 2021 23:10:58 +0000 (23:10 +0000)]
it doesnt make sense to configure a vport as a span port.

2 years agomove away from using the M_PROTO1 flag to prevent loops with vports
dlg [Tue, 28 Dec 2021 23:10:30 +0000 (23:10 +0000)]
move away from using the M_PROTO1 flag to prevent loops with vports

if a vlan interface is configured on a vport interface, vlan(4)
will take the packet away from ether_input before the veb bridge
input handler gets to clear M_PROTO1. this leaves the flag on the
mbuf as it goes through the l3 stacks. if it goes back out a vport
into a veb, the presence of M_PROTO1 means the packet ends up getting
dropped, which is unexpected.

this diff specialises vport handling by veb even more to avoid the
problem the flag was handling. vports get their own bridge input
handler that skips veb processing completely because a packet being
received on a vport can only occur if a veb has decided to forward
it there and has already processed it. when the stack sends a packet
out a vport interface, then we do actual veb bridge input handling.

bug reported on misc@ and the fix tested by Simon Baker

2 years agoFix typo in comment
tb [Tue, 28 Dec 2021 21:23:40 +0000 (21:23 +0000)]
Fix typo in comment

2 years agolld: restore upstream default for --[no-]allow-shlib-undefined
naddy [Tue, 28 Dec 2021 21:14:24 +0000 (21:14 +0000)]
lld: restore upstream default for --[no-]allow-shlib-undefined

ok patrick@ kettenis@

2 years agolld: do not report undefined weak references in shared libraries
naddy [Tue, 28 Dec 2021 21:13:20 +0000 (21:13 +0000)]
lld: do not report undefined weak references in shared libraries

https://github.com/llvm/llvm-project/commit/52bfd2c1ccd86ff813ee6df5a6700690acdd912f

This fixes an issue introduced in D101996.

A weak reference in a shared library could be incorrectly reported if
there is another library that has a strong reference to the same symbol.

Differential Revision: https://reviews.llvm.org/D115041

ok patrick@ kettenis@

2 years agoUse lowercase letters for hexadecimal constants, as both jsing and I
tb [Tue, 28 Dec 2021 21:06:01 +0000 (21:06 +0000)]
Use lowercase letters for hexadecimal constants, as both jsing and I
prefer this.

2 years agoRewrite X509v3_addr_canonize() with new accessors
tb [Tue, 28 Dec 2021 21:00:27 +0000 (21:00 +0000)]
Rewrite X509v3_addr_canonize() with new accessors

This is again a straightforward conversion and leads to something which
matches our usual style more.

ok jsing

2 years agoValidate AFIs before sorting in X509v3_adr_canonize()
tb [Tue, 28 Dec 2021 20:58:05 +0000 (20:58 +0000)]
Validate AFIs before sorting in X509v3_adr_canonize()

Again, we're dealing with necessarily not fully validated data here,
so a check up front seems prudent.

ok jsing

2 years agoRewrite/simplify X509v3_addr_is_canonical()
tb [Tue, 28 Dec 2021 20:50:37 +0000 (20:50 +0000)]
Rewrite/simplify X509v3_addr_is_canonical()

This is a more or less straightforward conversion using the new
IPAddressFamily accessor API. As a result, some checks have become
a bit stricter, which is only desirable here.

ok jsing

2 years agoCheck AFI/SAFI before comparing them in X509v3_addr_is_canonical()
tb [Tue, 28 Dec 2021 20:44:56 +0000 (20:44 +0000)]
Check AFI/SAFI before comparing them in X509v3_addr_is_canonical()

As mentioned in a previous commit, IPAddressFamily_cmp() can't really
check for trailing garbage in addressFamily->data. Since the path
validation and hence the X.509 validator call X509v3_addr_is_canonical(),
this deals with only partially validated data.

ok jsing

2 years agoMake IPAddressFamily_cmp() more pleasing on the eye
tb [Tue, 28 Dec 2021 20:07:17 +0000 (20:07 +0000)]
Make IPAddressFamily_cmp() more pleasing on the eye

Define and use MINIMUM() instead of a ternary operator and separate
the code from the declarations. Also, we can spare a line to make the
return legible instead of squeezing it into another ternary operator.

addressFamily->data contains a two-bytes AFI and an optional one-byte
SAFI.  This function currently also compares any trailing garbage that
may be present. Since comparison functions can't really error, this
needs to be checked bofore it is used. Such checks will be added in
subsequent commits.

ok jsing

2 years agoStyle improvements in X509v3_addr_add_range()
tb [Tue, 28 Dec 2021 19:59:33 +0000 (19:59 +0000)]
Style improvements in X509v3_addr_add_range()

ok jsing

2 years agoStyle improvements in X509v3_addr_add_prefix()
tb [Tue, 28 Dec 2021 19:56:45 +0000 (19:56 +0000)]
Style improvements in X509v3_addr_add_prefix()

ok jsing

2 years agoThe initial kd_lookup() in kcovopen() is redundant as kcov is a cloning
anton [Tue, 28 Dec 2021 17:50:10 +0000 (17:50 +0000)]
The initial kd_lookup() in kcovopen() is redundant as kcov is a cloning
device. Turn it into an assertion instead to better state the expected
semantics of D_CLONE.

Prompted after a discussion with visa@

2 years agoAnother small readability tweak in X509v3_addr_inherits()
tb [Tue, 28 Dec 2021 17:45:41 +0000 (17:45 +0000)]
Another small readability tweak in X509v3_addr_inherits()

Declare IPAddressFamily before using it.

2 years agoUse an accessor in X509v3_addr_inherits()
tb [Tue, 28 Dec 2021 17:25:46 +0000 (17:25 +0000)]
Use an accessor in X509v3_addr_inherits()

2 years agoAdd a comment to i2r_IPAddrBlocks that we may want/have to deal with
tb [Tue, 28 Dec 2021 16:40:13 +0000 (16:40 +0000)]
Add a comment to i2r_IPAddrBlocks that we may want/have to deal with
unknown address family types.

Pointed out by jsing during review.

2 years agoAdd a few accessors for IPAddressFamily and make first use of them
tb [Tue, 28 Dec 2021 16:37:37 +0000 (16:37 +0000)]
Add a few accessors for IPAddressFamily and make first use of them

One reason why this file is hard to read are endless repetitions of
checks and assignments reaching deep inside structs. This can be made
much more readable by adding a bunch of accessors. As a first step,
we deal with IPAddressFamily, where we want to check the type of the
ipAddressChoice member, check whether the inheritance element is present
or access the addressOrRanges field.

This diff already makes minimal use of these accessors to appease -Werror.
More use and additional accessors will follow in later passes.

ok inoguchi jsing

2 years agoNow that -A prints -- markers as it is supposed to filter them out when
otto [Tue, 28 Dec 2021 16:29:59 +0000 (16:29 +0000)]
Now that -A prints -- markers as it is supposed to filter them out when
doing the consistency check for locore.o; ok millert@

2 years agoFix printing of -- marker when using -A as noted by gnezdo@
otto [Tue, 28 Dec 2021 16:27:53 +0000 (16:27 +0000)]
Fix printing of -- marker when using -A as noted by gnezdo@
ok millert@

2 years agoSimplify and explain expand_addr() a bit
tb [Tue, 28 Dec 2021 16:26:53 +0000 (16:26 +0000)]
Simplify and explain expand_addr() a bit

RFC 3779 section 2.1.2 does a decent job of explaining how IP addresses
are encoded in. What's stored amounts to a prefix with all trailing zero
octets omitted. If there are trailing zero bits in the last non-zero octet,
bs->flags & 7 indicates how many. addr_expand() expands this to an address
of length 4 or 16 depending on whether we deal with IPv4 or IPv6.

Since an address can be the lower or the upper bound of a prefix or
address range, expansion needs to be able to zero-fill or one-fill the
unused bits/octets. No other expansion is ever used, so simplify the
meaning of fill accordingly. There's no need to special case the case
that there are no unused bits, the masking/filling is a noop.

ok jsing