dtucker [Fri, 27 May 2022 04:27:49 +0000 (04:27 +0000)]
Avoid kill with -1 argument.
The out_ctx label can be reached before fork has been called. If this
happens, then kill -1 would be called, sending SIGTERM to all processes
reachable by the current process.
From tobias@ and c3h2_ctf via github PR#286, ok djm@
dtucker [Fri, 27 May 2022 04:13:24 +0000 (04:13 +0000)]
Note that ProxyJump also accepts the same tokens as ProxyCommand.
From pallxk via github PR#305.
kettenis [Thu, 26 May 2022 23:32:18 +0000 (23:32 +0000)]
Adjust compatible string to match what has been submitted to mainline Linux.
Keep supporting the old compatible string for a bit longer.
Add frequency sensors that reflect the actual frequencies the CPU clusters
are running at as reported by the hardware.
ok patrick@
espie [Thu, 26 May 2022 21:08:52 +0000 (21:08 +0000)]
I'm a doofus, of course I need to use "write_without_variation" for that
jsg [Thu, 26 May 2022 13:54:38 +0000 (13:54 +0000)]
recognise Cortex-X1C
ajacoutot [Thu, 26 May 2022 11:27:03 +0000 (11:27 +0000)]
Introduce a new daemon_execdir variable for changing to a specified directory
before running rc_rcexec.
Based on an proposal from openbsd.tech at aisha.cc
ok robert@ abieber@
espie [Thu, 26 May 2022 06:53:38 +0000 (06:53 +0000)]
first step in simplifying the always-update case:
tweak @option always-update to allow parsing
@option always-update <hash_value_for_the_whole_plist>
once this is safely in snapshots, we can generate it
directly within PkgCreate.pm, compare it directly in
Signature.pm and get rid of the whole special case
of having to keep the whole plist around
jsg [Thu, 26 May 2022 06:20:59 +0000 (06:20 +0000)]
drm/i915/adl-n: Add stepping info
From Tejas Upadhyay
8d80cceecdd98de6d2281d39d6571a1fe08e5af9 in mainline linux
jsg [Thu, 26 May 2022 06:13:24 +0000 (06:13 +0000)]
drm/i915/rpl-s: Add stepping info
From Anusha Srivatsa
8295524a2d5550b56e800ac779a183b7f4d8c33c in mainline linux
jsg [Thu, 26 May 2022 05:11:51 +0000 (05:11 +0000)]
drm/i915/rpl-s: Enable guc submission by default
From Anusha Srivatsa
c9ee950a2ca55ea0f63d0893f796b2eb089e7900 in mainline linux
jsg [Thu, 26 May 2022 04:57:00 +0000 (04:57 +0000)]
drm/i915/adl-n: Add PCH Support for Alder Lake N
From Tejas Upadhyay
02ed904261481460e6084769416e7ca31bbb92eb in mainline linux
jsg [Thu, 26 May 2022 04:52:50 +0000 (04:52 +0000)]
drm/i915/rpl-s: Add PCH Support for Raptor Lake S
From Anusha Srivatsa
4a75f32fc783128d0c42ef73fa62a20379a66828 in mainline linux
jsg [Thu, 26 May 2022 01:47:30 +0000 (01:47 +0000)]
regen
jsg [Thu, 26 May 2022 01:47:02 +0000 (01:47 +0000)]
add more Intel RPL-S graphics ids
jsg [Thu, 26 May 2022 01:41:16 +0000 (01:41 +0000)]
drm/i915/rpl-p: Add PCI IDs
From Matt Atwood
72c3c8d6e5275b19fd2d32ec787e8135a421c7ec in mainline linux
jsg [Thu, 26 May 2022 01:36:02 +0000 (01:36 +0000)]
drm/i915: Add RPL-S PCI IDs
From Tejas Upadhyay
756b807f6a3e01d238c346925006cdfd6a59e341 in mainline linux
mvs [Wed, 25 May 2022 19:48:46 +0000 (19:48 +0000)]
Call if_put(9) after we finish with `ia' within ip_getmoptions().
if_put(9) call means we finish work with `ifp' and it could be destroyed.
`ia' is the pointer to 'in_ifaddr' data belongs to `ifp', so we need to
release corresponding `ifp' after we finish deal with `ia'.
`if_addrlist' list destruction and ip_getmoptions() are serialized with
kernel and net locks so this is not critical, but looks inconsistent.
ok bluhm@
guenther [Wed, 25 May 2022 17:32:36 +0000 (17:32 +0000)]
Revert the .rodata.cst4 change: results in incorrect value read
tb [Wed, 25 May 2022 17:10:30 +0000 (17:10 +0000)]
Remove an unnecessary XXX comment. The suggested check is part of
extract_min_max().
claudio [Wed, 25 May 2022 16:56:04 +0000 (16:56 +0000)]
Adjust code after adding an extra argument to community_ext_add
claudio [Wed, 25 May 2022 16:21:11 +0000 (16:21 +0000)]
Print ASnumbers in asplain format and stop using the old asdot format.
While there clean up some draft comments with their RFC number.
The detection for 4-byte ASPATH attributes is a bit sloppy but since
all resonable BGP versions use 4-byte ASnumbers now we default to them
unless we know it is a 2-byte encoding.
Kill it with fire. deraadt@ & job@ OK sthen@
claudio [Wed, 25 May 2022 16:03:34 +0000 (16:03 +0000)]
Fix non-transitive extended community handling.
First of all the detection logic was totally wrong. Then filter out
non-transitive extended communities when received from an ebgp peer.
Also cleanup the type handling of ext-communities. Mainly to not have
to handle the transitive vs non-transitive versions the type is masked
with EXT_COMMUNITY_VALUE before doing the switch case for the various
types.
With this my test using ext-communities works.
OK tb@
job [Wed, 25 May 2022 14:26:27 +0000 (14:26 +0000)]
Add RFC 9234 "BGP Role" support
With and OK claudio@
jsg [Wed, 25 May 2022 12:37:23 +0000 (12:37 +0000)]
drm/dp/mst: fix a possible memory leak in fetch_monitor_name()
From Hangyu Hua
deec86168170d085d4f91445c1f72a900ed02372 in linux 5.15.y/5.15.42
6e03b13cc7d9427c2c77feed1549191015615202 in mainline linux
jsg [Wed, 25 May 2022 12:33:48 +0000 (12:33 +0000)]
drm/i915/dmc: Add MMIO range restrictions
From Anusha Srivatsa
aaf0f01d074d6fd39ec1b01477f69cd688bf6c9d in linux 5.15.y/5.15.42
54395a33718af1c04b5098203335b25382291a16 in mainline linux
jsg [Wed, 25 May 2022 12:29:12 +0000 (12:29 +0000)]
drm/amd: Don't reset dGPUs if the system is going to s2idle
From Mario Limonciello
9d3ec4e5bf032f53137e11075846cec9c474ce4b in linux 5.15.y/5.15.42
7123d39dc24dcd21ff23d75f46f926b15269b9da in mainline linux
jsg [Wed, 25 May 2022 12:25:25 +0000 (12:25 +0000)]
Revert "drm/i915/opregion: check port number bounds for SWSCI display power state"
From Greg Thelen
11e6a90ffd6294083b808d34ccc5a5ea18ed603e in linux 5.15.y/5.15.42
jmatthew [Wed, 25 May 2022 09:49:17 +0000 (09:49 +0000)]
As with if_em.c r1.350, and for the same reasons (arm64 systems with non
cache coherent PCIe), map the rx and tx rings coherent.
tested by kevlo@ on rockpro64
ok dlg@
djm [Wed, 25 May 2022 06:03:44 +0000 (06:03 +0000)]
revert previous; it was broken (spotted by Theo)
dlg [Wed, 25 May 2022 03:03:58 +0000 (03:03 +0000)]
marvell,armada-3700-ahci seems to work.
ok kettenis@ patrick@
djm [Wed, 25 May 2022 00:31:13 +0000 (00:31 +0000)]
make SSHBUF_DBG/SSHBUF_TELL (off by default and only enabled via
#define) dump to stderr rather than stdout
guenther [Tue, 24 May 2022 22:36:58 +0000 (22:36 +0000)]
Delete superfluous/duplicated #includes
guenther [Tue, 24 May 2022 22:35:27 +0000 (22:35 +0000)]
Give internal 'botch' labels a '.L' prefix to remove them from the
symbol table
ok kettenis@ miod@
guenther [Tue, 24 May 2022 22:34:02 +0000 (22:34 +0000)]
Address the clang 13 "changed binding to STB_WEAK" warning on arm64:
add _?ENTRY_NB to asm.h, switch libc's asm bits to the generic
DEFS.h, and use ENTRY_NB as necessary.
Also, give sizes to the htonl/htons symbols and mark them as weak.
ok kettenis@ miod@
tb [Tue, 24 May 2022 20:20:19 +0000 (20:20 +0000)]
Clean up ASN1_item_sign_ctx() a little
Instead of inl, outl, and outll, use in_len, out_len, and buf_out_len.
Use the appropriate types for them. Check return values properly, check
for overflow. Remove some unnecessary casts and add some for readability.
Use asn1_abs_set_unused_bits() instead of inlining it.
This removes the last direct consumer of ASN1_STRING_FLAG_BITS_LEFT
outside of asn1/a_bitstr.c. The flag is still mentioned in x509/x509_addr.c
but that will hopefully go away soon.
tweaks/ok jsing
tb [Tue, 24 May 2022 20:06:32 +0000 (20:06 +0000)]
Simplify ec_asn1_group2curve()
Don't try to reuse curve->seed to avoid an allocation. Free it
unconditionally and copy over the group->seed if it's available.
Use asn1_abs_set_unused_bits() instead of inlining it.
ok jsing
tb [Tue, 24 May 2022 20:00:15 +0000 (20:00 +0000)]
Straightforward conversion of ecdh_cms_encrypt() to
asn1_abs_set_unused_bits()
ok jsing
tb [Tue, 24 May 2022 19:59:14 +0000 (19:59 +0000)]
Rewrite X509_PUBKEY_set0_param() to use asn1_abs_set_unused_bits()
This streamlines the logic and uses ASN1_STRING_set0() and
asn1_abs_set_unused_bits() instead of inlining them.
ok jsing
tb [Tue, 24 May 2022 19:56:13 +0000 (19:56 +0000)]
Use asn1_abs_set_unused_bits() in asn1_str2type()
ok jsing
krw [Tue, 24 May 2022 17:29:02 +0000 (17:29 +0000)]
fdisk(8) no longer uses the partition table it finds in
/usr/mdec/mbr. Make the partition table all zeros and
see if any hidden uses fall out.
ok deraadt@
guenther [Tue, 24 May 2022 17:21:17 +0000 (17:21 +0000)]
Set the correct alignment on __jmpxor (.align's meaning is MD!)
Put .L_setjmp_magic in the correct ELF section for duplicate suppression
Rename the "botch" label to delete it from the symbol table
ok kettenis@ miod@
guenther [Tue, 24 May 2022 17:20:23 +0000 (17:20 +0000)]
Delete superfluous/duplicated #includes
guenther [Tue, 24 May 2022 17:19:46 +0000 (17:19 +0000)]
Add END() tags to give these functions sizes in the ELF symbol table
ok kettenis@ miod@
guenther [Tue, 24 May 2022 17:15:22 +0000 (17:15 +0000)]
Address the clang 13 "changed binding to STB_WEAK" warning on arm (32bit):
* add _?ENTRY_NB to arm/asm.h
* make sure ld.so's arm asm bits see the same includes as libc
* switch libc's arm bits to the generic DEFS.h
* switch arm ASM bits from ENTRY to ENTRY_NB as necessary
ok kettenis@ miod@
op [Tue, 24 May 2022 16:42:19 +0000 (16:42 +0000)]
fix some dobeep_msgs calls
dobeep_msgs isn't printf-like: it just prints the two arguments
separated by a space. When it was introduced, some calls from ewprintf
were incorrectly translated and the "%s" remained.
ok florian@
op [Tue, 24 May 2022 16:24:31 +0000 (16:24 +0000)]
automatically delete trailing whitespaces on RET in c-mode and
auto-indent-mode (only after computing the auto indent.)
tested also by Mikhail (thanks!). ok tb@
claudio [Tue, 24 May 2022 09:22:45 +0000 (09:22 +0000)]
While not strictly required clear all pfds in the poll loop and not just
once at the start.
OK tb@
claudio [Tue, 24 May 2022 09:20:49 +0000 (09:20 +0000)]
Introduce MAX_HTTP_REQUESTS and MAX_RSYNC_REQUESTS.
These just replace MAX_CONNECTIONS and MAX_RSYNC_PROCESSES to be more unified.
OK tb@
anton [Tue, 24 May 2022 05:14:30 +0000 (05:14 +0000)]
Recent changes to truncate(2) swapped the ordering of some validations
causing EACCESS as opposed of ESDIR to be returned while trying to
truncate a directory as a user lacking write permissions to the same
directory. As this behavior is reasonable, change the truncate directory
from /etc/ to /tmp which makes the test pass both as root and non-root.
krw [Mon, 23 May 2022 16:58:10 +0000 (16:58 +0000)]
Neither macppc nor the retired loongson have any remaining useful
information in /usr/mdec/mbr. Stop telling fdisk(8) that macppc
and loongson HAS_MBR, and don't bother including the file in the
base set.
macppc build/install tests and ok gkoehler@
loongson is gone deraadt@
millert [Mon, 23 May 2022 15:17:11 +0000 (15:17 +0000)]
Respect RLIMIT_FSIZE when extending a file via truncat(2)/ftruncate(2).
This refactors the commin parts of sys_truncate() and sys_ftruncate()
into dotruncate(). If the new size of the file is larger than the
RLIMIT_FSIZE limit _and_ the file is being extended, not truncated,
return EFBIG. Adapted from a diff by Piotr Durlej.
With help from and OK by deraadt@ guenther@.
tb [Mon, 23 May 2022 14:10:18 +0000 (14:10 +0000)]
Improve #ifdefs for STACK_OF() helpers.
Discussed with claudio
deraadt [Mon, 23 May 2022 13:40:11 +0000 (13:40 +0000)]
whitespaces found when I went checking for something else
claudio [Mon, 23 May 2022 13:39:14 +0000 (13:39 +0000)]
There is no need to be quiet by default anymore and also stdout is
perfectly fine. So switch the stats output at the end of the run to
simply use printtf(3) and no longer depend on -v flag.
OK tb@
dlg [Mon, 23 May 2022 11:37:22 +0000 (11:37 +0000)]
add support for the ehci controller on marvell 3720 boards.
the marvell controllers have two quirks compared to standard ehci
controllers, but they're small enough that they can be dealt with
here rather than creating a specific glue driver (like imxehci has).
the first quirk is that the ehci registers are offset in the window
advertised by the device tree. this is handled by having ehci_fdt
always present a bus space subregion to ehci, and defaults the
offset to 0. marvell controllers provide the right offset into their
register window so the subregion code can find the right place for
ehci to operate on.
the other quirk is that marvell controllers need to be forced to
host mode with the extra EHCI_USBMODE register.
this makes ehci work on espressobins and gl-mv1000 boards.
tested by me and dtucker@
ok kettenis@ patrick@
bluhm [Mon, 23 May 2022 11:17:35 +0000 (11:17 +0000)]
In pf the kernel paniced if IP options in packet within ICMP payload
were truncated. Drop such packets instead.
Reported-by: syzbot+91abd3aa2fdfe900f9ce@syzkaller.appspotmail.com
OK sashan@ claudio@
bluhm [Mon, 23 May 2022 09:54:18 +0000 (09:54 +0000)]
Fix white space.
kettenis [Sun, 22 May 2022 16:54:17 +0000 (16:54 +0000)]
Convert KVA allocation to km_alloc(9).
ok visa@
visa [Sun, 22 May 2022 04:52:17 +0000 (04:52 +0000)]
Lock kernel in nfsrv_rcv() because NFS subsystem is not MP-safe yet.
Tested in snaps for a week.
OK bluhm@
kettenis [Sat, 21 May 2022 23:43:31 +0000 (23:43 +0000)]
Convert KVA allocation to km_alloc(9).
ok mpi@
ajacoutot [Sat, 21 May 2022 14:11:39 +0000 (14:11 +0000)]
Document rc_exec.
deraadt [Sat, 21 May 2022 13:54:19 +0000 (13:54 +0000)]
Repair a leak of a FILE. The FILE contains a fd via fdopen(), the
handling of the fd is correct, so this temporary fdopen now must use
a dup() so we can fclose().
ok otto
jsing [Sat, 21 May 2022 13:21:42 +0000 (13:21 +0000)]
Remove some unhelpful comments and spell NULL correctly.
jsing [Sat, 21 May 2022 13:16:19 +0000 (13:16 +0000)]
Factor out ASN1_ITYPE_EXTERN handling.
Factor out the ef->asn1_ex_d2i() callback handling - this allows us to pull
out all of the related variables into a self-contained function.
ok tb@
ajacoutot [Sat, 21 May 2022 12:42:21 +0000 (12:42 +0000)]
${rcexec} -> rc_exec
jsing [Sat, 21 May 2022 11:21:31 +0000 (11:21 +0000)]
Use 'at' for ASN1_TEMPLATE variable names rather than 'tt'.
Also use array indexes for it->templates, rather than trying to be extra
clever in for loops (suggested by tb@ during a review).
No functional change.
ok tb@
jsing [Sat, 21 May 2022 11:12:03 +0000 (11:12 +0000)]
Remove _ex_ from all of the internal function names.
It no longer makes sense to have "extended" versions of functions
internally.
No functional change.
ok tb@
ajacoutot [Sat, 21 May 2022 10:50:09 +0000 (10:50 +0000)]
Replace the $rcexec variable by an rc_exec function.
It is much cleaner to the eyes and makes more sense from a functionnal point of
view.
This will allow to extend rc_exec with other functionnalities (like upcoming
rc_startdir).
Bonus point: daemon_logger will now work with manually crafted rc_start
functions.
This will require a mechanical change from ${rcexec} to rc_exec in rc.d scripts.
ports will be fixed right after this commit but we will keep compatibility to
give a chance to people to fix their custom scripts.
positive tests from a few
ok robert@
ajacoutot [Sat, 21 May 2022 10:10:45 +0000 (10:10 +0000)]
No need for true(1).
deraadt [Sat, 21 May 2022 01:21:29 +0000 (01:21 +0000)]
repair a few more backwards compares that create headaches
ok millert
millert [Sat, 21 May 2022 00:53:53 +0000 (00:53 +0000)]
system(3) should ignore SIGINT and SIGQUIT until the shell exits.
This got broken when system.c was converted from signal(3) to sigaction(2).
Also add SIGINT and SIGQUIT to the set of blocked signals and unblock
them in the parent after the signal handlers are installed.
Based on a diff from Leon Fischer. OK deraadt@
dv [Fri, 20 May 2022 22:42:09 +0000 (22:42 +0000)]
vmm: remove spinout paranoia
Move all the spinout counters for ipis (enable/disable vmm, remote
vmcs clear) behind MP_LOCKDEBUG.
All three areas (vmm_start, vmm_stop, vmx_remote_vmclear) migrate
to infinite busy waits.
tested by and ok mlarkin@
dv [Fri, 20 May 2022 22:14:19 +0000 (22:14 +0000)]
vmm: load the vmcs before reading vcpu registers
The vmm(4) ioctl for reading a vcpu's registers didn't flush and
load the vmcs before issuing vmread instructions. This adds a flag
to vcpu_readregs_vmx to signal if the vmcs needs to be synchronized
before attempting the reads. (This is the same approach used for
vcpu_writeregs_vmx function.)
This fixes `vmctl send` on Intel hosts using vmd(8).
While here, I noticed the vcpu_writeregs_vmx function doesn't
properly set the vmcs state variable to VMCS_CLEARED after running
a vmclear instruction. This can cause errors on vm re-entry.
ok mlarkin@
dv [Fri, 20 May 2022 22:06:47 +0000 (22:06 +0000)]
use correct logging or error calls
ftruncate sets errno, so use fatal() and not fatalx().
Checking for under-reads of read(2) isn't going to set errno so
use errx().
ok abieber@
espie [Fri, 20 May 2022 20:31:38 +0000 (20:31 +0000)]
as promised, extend the precaching using quirks stems extension.
(as it happens, some py-sip thingy got the treatment so I could test
that the code does something) !
mbuhl [Fri, 20 May 2022 20:08:43 +0000 (20:08 +0000)]
Add expected failures for octeon and riscv64.
schwarze [Fri, 20 May 2022 13:06:26 +0000 (13:06 +0000)]
Re-classify the roff(7) \r (reverse line feed) escape sequence
from "ignore" to "unsupported" because when an input file uses it,
mandoc(1) is likely to significantly misformat the output,
usually showing parts of the output in a different order
than the author intended.
schwarze [Fri, 20 May 2022 12:30:33 +0000 (12:30 +0000)]
Test the handling of some additional one-character escape sequences
that take no argument and are ignored: \% \& \^ \a \d \t \u \{ \| \}
No change to parsing or formatting needed.
espie [Fri, 20 May 2022 10:39:24 +0000 (10:39 +0000)]
fold some of the useful "obsolete" information into the main text
job [Fri, 20 May 2022 10:38:39 +0000 (10:38 +0000)]
Add RFC 7318
bluhm [Fri, 20 May 2022 09:46:47 +0000 (09:46 +0000)]
New ldapsearch does not support -h and -p for host and port, but
accepts -H ldapuri. Use startup and cleanup framework. Pidfile
does not work anymore, use pkill ldapd. Delete deactivated and
failing cpan test.
tb [Fri, 20 May 2022 08:04:21 +0000 (08:04 +0000)]
Drop *out == NULL check in ASN1_STRING_to_UTF8()
Unfortunately, several things in the ecosystem depend on the existing
API behavior of being able to pass in an uninitialized pointer on the
stack: haproxy, grpc, mongo-tools and others show up on the first two
pages of Debian codesearch.
ok jsing
tb [Fri, 20 May 2022 08:00:05 +0000 (08:00 +0000)]
Don't pass uninitialized pointer to ASN1_STRING_to_UTF8()
Exposed by recent rewrite of ASN1_STRING_to_UTF8(). Found via grep
after fixing CID 352831.
ok jsing
tb [Fri, 20 May 2022 07:58:54 +0000 (07:58 +0000)]
Don't pass uninitialized pointer to ASN1_STRING_to_UTF8()
Exposed by recent rewrite of ASN1_STRING_to_UTF8().
CID 352831
ok jsing
anton [Fri, 20 May 2022 05:03:45 +0000 (05:03 +0000)]
Rename hid_none to hid_all as it represents all possible hid kinds by
now.
anton [Fri, 20 May 2022 05:02:47 +0000 (05:02 +0000)]
uhid_maxrepid() is currently not able to observe all report IDs as it
passes hid_none as the wanted hid kind to hid_start_parse(). This
becomes a problem for descriptors with multiple report IDs per
collection. Therefore change the semantics of the hid_none kind to let
it represents all possible kinds.
Gets rid of "uhidev_intr: bad repid" console spam as reported by sthen@
on bugs@.
Have been in snaps for a week.
jsing [Thu, 19 May 2022 19:45:18 +0000 (19:45 +0000)]
Reorder functions within file.
Order functions by use, moving public API to the bottom and utility
functions to the top. This makes the code more logical/readable, plus we
can remove all except one of the static function prototypes.
No functional change.
jsing [Thu, 19 May 2022 19:31:39 +0000 (19:31 +0000)]
Rewrite the asn1_template_*() functions with CBS.
Rewrite the asn1_template_*() functions with CBS, readable variable names
and free then alloc.
This was the last caller of asn1_check_eoc() and asn1_check_tag(), hence
remove them and rename the _cbs suffixed versions in their place.
ok tb@
schwarze [Thu, 19 May 2022 16:15:35 +0000 (16:15 +0000)]
following the fixed parsing direction of roff_expand() in roff.c rev. 1.260,
some diagnostics now appear in a more reasonable order, too
schwarze [Thu, 19 May 2022 16:07:02 +0000 (16:07 +0000)]
Adjust a column number in an error message
after the roff_expand() reorganization in roff.c rev. 1.260.
The new parsing direction has two effects:
1. Correct output when a line contains more than one expanding
escape sequence that has a side effect.
2. Column numbers in diagnostic messages now report the changed
column numbers after any expansions left of them have taken place;
in the past, column numbers refered to the original input line.
Arguably, item 2 was a bit better in its old state, but slightly
less helpful diagnostics are a small price to pay for correct
output. Besides, when the expansion of user-defined strings or
macros is involved, in many cases, mandoc(1) is already unable to
report meaningful line and column numbers, so item 2 is not a
noteworthy regression. The effort and code complication for fixing
that would probably be excessive, in particular since well-written
manual pages are not supposed to use such features in the first place.
schwarze [Thu, 19 May 2022 15:42:14 +0000 (15:42 +0000)]
fix a wrong column number that got fixed as a side effect
of the roff_expand() reorganization in roff.c rev. 1.260
schwarze [Thu, 19 May 2022 15:33:54 +0000 (15:33 +0000)]
remove a bogus warning that went away as a side effect
of the roff_expand() reorganization in roff.c rev. 1.260
schwarze [Thu, 19 May 2022 15:17:50 +0000 (15:17 +0000)]
Make roff_expand() parse left-to-right rather than right-to-left.
Some escape sequences have side effects on global state, implying
that the order of evaluation matters. For example, this fixes the
long-standing bug that "\n+x\n+x\n+x" after ".nr x 0 1" used to
print "321"; now it correctly prints "123".
Right-to-left parsing was convenient because it implicitly handled
nested escape sequences. With correct left-to-right parsing, nesting
now requires an explicit implementation, here solved as follows:
1. Handle nested expanding escape sequences iteratively.
When finding one, expand it, then retry parsing the enclosing escape
sequence from the beginning, which will ultimately succeed as soon
as it no longer contains any nested expanding escape sequences.
2. Handle nested non-expanding escape sequences recursively.
When finding one, the escape sequence parser calls itself to find
the end of the inner sequence, then continues parsing the outer
sequence after that point.
This requires the mandoc_escape() function to operate in two different
modes. The roff(7) parser uses it in a mode where it generates
diagnostics and may return an expansion request instead of a parse
result. All other callers, in particular the formatters, use it
in a simpler mode that never generates diagnostics and always returns
a definite parsing result, but that requires all expanding escape
sequences to already have been expanded earlier. The bulk of the
code is the same for both modes.
Since this required a major rewrite of the function anyway, move
it into its own new file roff_escape.c and out of the file mandoc.c,
which was misnamed in the first place and lacks a clear focus.
As a side benefit, this also fixes a number of assertion failures
that tb@ found with afl(1), for example "\n\\\\*0", "\v\-\\*0",
and "\w\-\\\\\$0*0".
As another side benefit, it also resolves some code duplication
between mandoc_escape() and roff_expand() and centralizes all
handling of escape sequences (except for expansion) in roff_escape.c,
hopefully easing maintenance and feature improvements in the future.
While here, also move end-of-input handling out of the complicated
function roff_expand() and into the simpler function roff_parse_comment(),
making the logic easier to understand.
Since this is a major reorganization of a central component of
mandoc(1), stability of the program might slightly suffer for a few
weeks, but i believe that's not a problem at this point of the
release cycle. The new code already satisfies the regression suite,
but more tweaking and regression testing to further improve the
handling of various escape sequences will likely follow in the near
future.
schwarze [Thu, 19 May 2022 14:47:47 +0000 (14:47 +0000)]
improve a comment explaining a particularly nasty hack; no code change
claudio [Thu, 19 May 2022 13:12:35 +0000 (13:12 +0000)]
Remove unused macro (log_debuginfo)
aoyama [Thu, 19 May 2022 12:55:59 +0000 (12:55 +0000)]
Now MULTIPROCESSOR kernel boots with CPU modules installed in
arbitrary slots.
Plamen Mihaylov's LUNA-88K2 originally has 2 CPU modules in slot #0
and #2, but MULTIPROCESSOR kernel panics because they are not placed
in contiguous slots. This diff fixes it.
Original diff from miod@, tested by Plamen Mihaylov and me.
espie [Thu, 19 May 2022 09:20:31 +0000 (09:20 +0000)]
document what this file stands for
stsp [Thu, 19 May 2022 08:05:23 +0000 (08:05 +0000)]
Document that imsg_add(3) frees its msg argument on failure.
ok op@ claudio@
tb [Thu, 19 May 2022 07:33:02 +0000 (07:33 +0000)]
Adjust or remove some stale comments
tb [Thu, 19 May 2022 07:04:41 +0000 (07:04 +0000)]
Add missing space between No macro and "authority".