patrick [Thu, 9 Aug 2018 13:52:36 +0000 (13:52 +0000)]
Allow passing per-function cookies through the SD/MMC bus to SDIO
devices. This allows SDIO device drivers to read information from
the ACPI or FDT tables.
ok kettenis@
patrick [Thu, 9 Aug 2018 13:50:15 +0000 (13:50 +0000)]
Correct the bitmask that returns the function count. We missed a bit
and thus only supported 4 functions instead of 8.
ok kettenis@
claudio [Thu, 9 Aug 2018 12:54:06 +0000 (12:54 +0000)]
While softreconfig is running set the poll timeout to 0 so that the
runner makes progress and does not get hold back by poll sleeping at
the same time fds are still serviced first if they have data pending.
kettenis [Thu, 9 Aug 2018 12:25:38 +0000 (12:25 +0000)]
Synopsys Designeware PCIe IP isn't 100% ECAM compliant. It doesn't handle
type 0 configuration requests correctly which results in devices on bus 0
appearing multiple times. Fix this by adding a quirk and match the
appropriate compatible string.
ok jsg@, patrick@
claudio [Thu, 9 Aug 2018 12:21:03 +0000 (12:21 +0000)]
Make two very internal functions static. They are used to merge an
AS_PATH with a AS4_PATH and are therefor fairly special.
patrick [Thu, 9 Aug 2018 12:19:32 +0000 (12:19 +0000)]
Define __HAVE_ACPI on arm64 and __HAVE_FDT on arm64, armv7 and octeon
so that we can include firmware-dependant code in generic drivers to be
able to extract metadata information like MAC addresses and out-of-band
interrupts from the ACPI/FDT tables.
ok kettenis@
nicm [Thu, 9 Aug 2018 09:54:22 +0000 (09:54 +0000)]
Whoops, didn't mean to commit this.
nicm [Thu, 9 Aug 2018 09:53:44 +0000 (09:53 +0000)]
Bump the UTF-8 character array up to 18 to allow for more combining
characters (some languages use up to five). This size doesn't make as
much difference now that UTF-8 goes into an extended cell. GitHub issue
1430.
kettenis [Thu, 9 Aug 2018 09:03:54 +0000 (09:03 +0000)]
regen
kettenis [Thu, 9 Aug 2018 09:03:12 +0000 (09:03 +0000)]
ASMedia ASM1184e PCIe switch.
akoshibe [Thu, 9 Aug 2018 03:35:19 +0000 (03:35 +0000)]
Currently, attempting to move an immovable lo(4) to a new rdomain will fail
with an EPERM, but the target rdomain will still be created.
Move the check for an lo(4)'s if_index/if_rdomain to before the creation of a
nonexisting target routing table.
ok benno@ claudio@ mpi@
jmatthew [Thu, 9 Aug 2018 01:41:48 +0000 (01:41 +0000)]
Remove the port id check entirely. We don't do anything with the port
id after that, so it seems like a silly reason to reject a target.
ok dlg@ deraadt@
deraadt [Wed, 8 Aug 2018 22:59:33 +0000 (22:59 +0000)]
lockspool only plays with files in _PATH_MAILDIR, so unveil that path.
deraadt [Wed, 8 Aug 2018 22:57:12 +0000 (22:57 +0000)]
mestre and I can find no reason why the pledge has "unix". Disable
that and start listening for failure reports.
deraadt [Wed, 8 Aug 2018 22:56:42 +0000 (22:56 +0000)]
ntpd unveils the cert.pem "r" file (which is passed-over-socket to the
constraints process), and /usr/sbin/ntpd "x" to perform fork+exec operations.
deraadt [Wed, 8 Aug 2018 22:55:14 +0000 (22:55 +0000)]
pledge with "unveil" at the top, so that the various modes can unveil
the files they inspect a little later.
ratchov [Wed, 8 Aug 2018 22:31:43 +0000 (22:31 +0000)]
Use unveil(2) in the helper process to disallow access to other files
than the devices specified with -f and -q options.
ok deraadt@
kettenis [Wed, 8 Aug 2018 20:57:53 +0000 (20:57 +0000)]
Support DMA coherent devices that attach to mainbus(4) as well.
ok patrick@
kettenis [Wed, 8 Aug 2018 20:56:49 +0000 (20:56 +0000)]
Fix the ITLinesNumber mask and bump the number of supprted redistributors
up to 24.
ok patrick@
mestre [Wed, 8 Aug 2018 20:15:17 +0000 (20:15 +0000)]
add unveil(2) to ctfconv(1)
Once we know what the input file is, usually /bsd.gdb, we can unveil it in read
mode. If we also define as argument an output file we can additionally unveil
that one with write/create permissions.
We don't need to care about calling unveil(NULL, NULL) since we can call
pledge(2) and reduce the permissions down the road depending on the code path.
"reads OK" jasper@, "put it in if works" mpi@
prodded by deraadt@
mestre [Wed, 8 Aug 2018 19:35:47 +0000 (19:35 +0000)]
add unveil(2) to mixerctl(1)
after we know what is the mixer device to be used, either through MIXERDEVICE
env var, the argument passed or by default /dev/mixer then we can unveil it in
read/write mode, then if opening fails we reduce unveil to only read mode.
Once open(2) succeeds then we can disable fs access by calling unveil(NULL, NULL)
since all further operations occur on fds.
A cleaner solution would be to just call pledge("audio") after open(2) but
currently the ioctls used are not whitelisted in pledge(2), ratchov@ will
investigate a better way to do this
OK ratchov@
rob [Wed, 8 Aug 2018 18:50:38 +0000 (18:50 +0000)]
Some unsigned long to unsigned int cleanup from recent ber (type) changes.
ok claudio@
deraadt [Wed, 8 Aug 2018 18:46:04 +0000 (18:46 +0000)]
Unveil the special files needed for reading AML tables, and the
directory for placement. We can only protect the directory case,
since the file_prefix+sig+id case is too large to enumerate.
deraadt [Wed, 8 Aug 2018 18:32:51 +0000 (18:32 +0000)]
After authentication is complete, unveil login.conf "r" (to discover
login tweaks), and walk the path (would could be $PATH, or not) adding
an unveil "x" to each possible executable which execvpe() could later
be tried by execvpe.
It would be great if we could do some unveil before authentication, but
I failed to determine all the possibilities.
Some problem reports by bluhm, tb, florian, and others during development
In snaps for about 3 weeks.
ok florian
tb [Wed, 8 Aug 2018 18:21:02 +0000 (18:21 +0000)]
typo: macro-generates wrappers -> macro-generated wrappers
deraadt [Wed, 8 Aug 2018 17:52:46 +0000 (17:52 +0000)]
An early pledge takes away many risk factors during spool opening/parsing.
This is worthwhile keeping, so add "unveil" to defer unveil(2) calls.
After various special cases are handled (including files which are anywhere
in the filesystem), unveil() to the specific file only.
deraadt [Wed, 8 Aug 2018 17:47:44 +0000 (17:47 +0000)]
In netproc process, unveil to only expose the CA file.
ok florian
florian [Wed, 8 Aug 2018 17:26:52 +0000 (17:26 +0000)]
ifconfig cannot be pledged because of its overwhelming amount of
used ioctls. Furthermore due to the way the command line parser is
written it is difficult to apply the traditional first initialize then
pledge pattern.
unveil(2) gives us a different approach:
By veiling everything with unveil("/", "") and then locking down
unveil with unveil(NULL, NULL) we remove all filesystem access from
ifconfig kind of like giving a regular user a chroot without any
files.
OK deraadt
deraadt [Wed, 8 Aug 2018 15:30:29 +0000 (15:30 +0000)]
tabs are ok at start of line, but internally space seperation is the norm
deraadt [Wed, 8 Aug 2018 14:38:31 +0000 (14:38 +0000)]
unveil dev.db "r" for devname(), /dev "r", and in the non-sysctl case
some kernel memory/symbol files.
deraadt [Wed, 8 Aug 2018 14:35:38 +0000 (14:35 +0000)]
In the early pledge, add "unveil" to permit changes a little later on.
If kernel variables are being watched unveil /dev/mem, /dev/kmem, and
/dev/ksyms. If testing AF_UNIX, unveil that patch. The next pledge
removes "unveil", then tcpbench is largely filesystem restricted.
schwarze [Wed, 8 Aug 2018 14:29:42 +0000 (14:29 +0000)]
Even though we strongly discourage escaping hyphens in manual pages
in general, when introducing the *typographic* term "hyphen",
actually display a real hyphen in output modes supporting it.
claudio [Wed, 8 Aug 2018 14:29:05 +0000 (14:29 +0000)]
Move struct wire_largecommunity to rde_attr.c since it is only used internally
ratchov [Wed, 8 Aug 2018 14:25:50 +0000 (14:25 +0000)]
Fix possible division by zero caused by bogus usb descriptors. From
Michael W. Bombardieri. Thanks.
schwarze [Wed, 8 Aug 2018 14:15:21 +0000 (14:15 +0000)]
Reorder the text in the "Dashes and Hyphens" subsection to keep the
simplest and most important instructions together and at the
beginning. No text change.
Suggested by jmc@.
schwarze [Wed, 8 Aug 2018 14:03:17 +0000 (14:03 +0000)]
Clarify the confusing "(text)" annotation in the character lists.
In some cases, it meant "render as an ASCII character in output
modes that have a notion of codepoints" (e.g. UTF-8, HTML); in other
cases, "render in the text font in output modes that also provide
a special font for mathematical symbols" (e.g. PostScript, PDF).
Also explicitly annotate the escape sequences that use a special
font if available.
OK bentley@
schwarze [Wed, 8 Aug 2018 13:53:55 +0000 (13:53 +0000)]
After years of deliberation, finally provide a clear recommendation
for hyphens and minus signs in manual pages.
Since there is consensus that a typographically perfect solution is
impossible, let's KISS - just write "-", don't bother with "\-", all
currently relevant manual page formatters can handle "-" reasonably.
OK jmc@ bentley@
claudio [Wed, 8 Aug 2018 13:52:30 +0000 (13:52 +0000)]
Merge getcommunity() and getlargecommunity() into one function that
takes a flag if it is large or not. Makes code more reusable.
claudio [Wed, 8 Aug 2018 13:49:20 +0000 (13:49 +0000)]
Make the (non-)transitive handling of ext communities a bit more obvious.
deraadt [Wed, 8 Aug 2018 13:46:44 +0000 (13:46 +0000)]
sync
claudio [Wed, 8 Aug 2018 13:32:36 +0000 (13:32 +0000)]
One ; too much
claudio [Wed, 8 Aug 2018 13:08:54 +0000 (13:08 +0000)]
Update the RIB after a config reload in the background. This moves the
heavy bits into the background and so the RDE is able to process new
messages more or less instantly after a configuration reload.
Not all cases are covered yet but the bulk is.
While the backgorund process is running no new config can be loaded.
Tested by and OK benno@
patrick [Wed, 8 Aug 2018 11:06:47 +0000 (11:06 +0000)]
Implement IRQ masking and unmasking in imxgpio(4).
patrick [Wed, 8 Aug 2018 11:06:33 +0000 (11:06 +0000)]
Extend the FDT interrupt API to support masking and unmasking IRQs.
Discussed with kettenis@
kevlo [Wed, 8 Aug 2018 09:17:45 +0000 (09:17 +0000)]
regen
kevlo [Wed, 8 Aug 2018 09:16:57 +0000 (09:16 +0000)]
Fix Realtek product name from RT8188 to RTL8188CE
ok stsp@
kn [Wed, 8 Aug 2018 08:42:49 +0000 (08:42 +0000)]
r1.19 removed a bunch of code, but not enough, and left dead code around.
From Miod Vallat, "Go ahead" kettenis
benno [Wed, 8 Aug 2018 06:54:50 +0000 (06:54 +0000)]
hide rib[] internals in new rib_valid() function
ok claudio@
jsg [Wed, 8 Aug 2018 05:07:46 +0000 (05:07 +0000)]
Recognise 'Speculative Store Bypass Disable' support cpuid bit.
Documented in 'Speculative Execution Side Channel Mitigations'
revision 2.0.
djm [Wed, 8 Aug 2018 01:16:01 +0000 (01:16 +0000)]
Use new private key format by default. This format is suported by
OpenSSH >= 6.5 (released January 2014), so it should be supported by
most OpenSSH versions in active use.
It is possible to convert new-format private keys to the older
format using "ssh-keygen -f /path/key -pm PEM".
ok deraadt dtucker
deraadt [Tue, 7 Aug 2018 18:39:56 +0000 (18:39 +0000)]
Unveil is used at tail of initialization to allow "r" of /tftpboot
(that decides whether rarpd should reply), and /etc/ethers "r" for
debug reporting.
deraadt [Tue, 7 Aug 2018 18:36:49 +0000 (18:36 +0000)]
Unveil fits nicely into the syslogd privsep model. Unveiled files
include config file "r", utmp "r", /dev "rw", /bin/sh "x" for running
piped commands, and the syslogd binary "x" itself for HUP re-exec upon
config loads with changes. Also unveiled in the privsep process are
the specific log files being written to.
If a config file reload changes no files, the existing privsep process
keeps running with unveil's to the relevant files (therefore it can
cope with newsyslogd taking files away). If a new config file is loaded
which changes the output files, the privsep process is restarted with
fork+exec, and installs new unveils as needed. The safety we gain from
unveil is that we've pigeonholed the privsep file-writer to exactly the
files required.
Help from bluhm for some edge cases.
deraadt [Tue, 7 Aug 2018 18:28:05 +0000 (18:28 +0000)]
unveil can be used to restrict access to utmp and /dev
stsp [Tue, 7 Aug 2018 18:13:14 +0000 (18:13 +0000)]
Ignore basic MCS set information found in association responses.
Some APs (Aruba 105) send a bogus basic MCS set in assoc responses
which prevents us from enabling 11n support with those APs, while
these APs still behave as if were were an 11n client which renders
the association unusable.
The basic MSC set is already provided in beacons anyway, and the
802.11 2012 standard says the basic MSC set is reserved in frames
other than beacons (see Table 8-130).
ok mpi@
deraadt [Tue, 7 Aug 2018 15:07:54 +0000 (15:07 +0000)]
UNVEIL_* flags defined elsewhere in a .h file
reyk [Tue, 7 Aug 2018 14:49:05 +0000 (14:49 +0000)]
Post-g2k18 fix: unbreak the optional vmd-internal vmboot loader.
The new vm_checkaccess() call didn't account for the vmboot case.
OK ccardenas@ mikeb@
visa [Tue, 7 Aug 2018 12:38:15 +0000 (12:38 +0000)]
Fix dangling knote references.
kqueue_close() does not take into account that the kqueue instance may
have queued knotes. This can cause a use-after-free if new knotes are
enqueued on the kqueue as a result of file closing.
Correct the error by dequeueing each knote before freeing it.
Since r1.93 of kern_event.c, each kqueue instance has its knotes
in nonshared lists kq_knhash and kq_knlist, so kqueue_close() does
not have to skip other kqueues' knotes any longer. The code can be
simplified by using knote_remove() for clearing the knote lists.
The function uses knote_drop() which takes care of knote dequeueing.
Found and initial analysis by anton@
OK anton@, mpi@
reyk [Tue, 7 Aug 2018 11:28:29 +0000 (11:28 +0000)]
Fix paste error in "no read access to" debug message, tweak messages.
Found by mikeb@
claudio [Tue, 7 Aug 2018 07:06:20 +0000 (07:06 +0000)]
Similar to the ldpd.conf change don't use a macro of the secret.
Macros get sometimes logged so we should not encurage to use them for
sensitive data.
kettenis [Mon, 6 Aug 2018 18:39:13 +0000 (18:39 +0000)]
Make it possible to build a MULTIPROCESSOR kernel on armv7. While this
doesn't actually spin up any secondary CPUs, it does run. Mostly a cleanup
of <machine/cpu.h> along the lines of what I did earlier on arm64. Makes
armv7 use the MI mplock implementation and implements copyin32.
ok patrick@
jmc [Mon, 6 Aug 2018 18:26:29 +0000 (18:26 +0000)]
space required between macro args and punctuation;
espie [Mon, 6 Aug 2018 18:20:47 +0000 (18:20 +0000)]
Reflect reality.
The infrastructure no longer uses -Dunsigned, but TRUSTED_PKG_PATH,
which narrows the source of unsigned package to a single place, and
thus is less hazardous.
benno [Mon, 6 Aug 2018 17:31:31 +0000 (17:31 +0000)]
replace the current log options
log updates|all
with
log state changes
log host checks
log connection [errors]
The first two control the logging of host check results: either changes in host state only or
all checks.
The third option controls logging of connections in relay mode:
Either log all connections, or only errors.
Additionaly, errors will be logged with LOG_WARN and good connections
will be logged with LOG_INFO, so they can be differentiated in syslog.
ok and feedback from claudio@
mestre [Mon, 6 Aug 2018 17:26:31 +0000 (17:26 +0000)]
Correct example file since reserved words cannot be used as macros. Not only
that, the macro used was password and if we changed it to something like
pass="secret" it would log it if the daemon was ran in verbose mode.
Hint and OK claudio@
mestre [Mon, 6 Aug 2018 17:25:11 +0000 (17:25 +0000)]
Change manpage example for reserved words since the macro used is to replace
a password and that way it would log it when the daemon is ran in verbose mode.
Hint and OK claudio@
claudio [Mon, 6 Aug 2018 15:59:01 +0000 (15:59 +0000)]
Validate the prefix sent in a network delete call before trying to delete
it. We should not trust this input too much as found by Pierre Emeriaud.
OK benno@
stsp [Mon, 6 Aug 2018 14:28:13 +0000 (14:28 +0000)]
Fix debug message in ieee80211_auth_open(): s/reason/status/
Status codes and reason codes are separate things listed in distinct tables.
This debug message made me look at the wrong table and scratch my head.
benno [Mon, 6 Aug 2018 11:42:18 +0000 (11:42 +0000)]
make ifconfig <if> join display the list of networks configured for
auto-join
with feedback from florian and stsp
ok florian@ phessler@ (on previous versions of the diff) stsp@
stsp [Mon, 6 Aug 2018 11:28:01 +0000 (11:28 +0000)]
Refactor ieee80211_add_ess():
Drop ieee80211_add_ess's nwid parameter. Read nwid and length directly
from the ic to make it more obvious where this function is reading from.
nwids are binary data with an explicit length, so treat them as such
instead of treating them like strings.
ok florian phessler
patrick [Mon, 6 Aug 2018 10:52:30 +0000 (10:52 +0000)]
Give the FDT interrupt API a more generic naming by replacing the
arm_intr_* prefix with fdt_intr_*.
ok kettenis@
florian [Mon, 6 Aug 2018 09:34:17 +0000 (09:34 +0000)]
Do not set nwid over and over again. We just found the ess by comparing
the nwid. It will not have changed in the meantime.
OK stsp
claudio [Mon, 6 Aug 2018 08:13:31 +0000 (08:13 +0000)]
Pass the stale timestamp to path_remove_stale() removes a asp->peer dereference
claudio [Mon, 6 Aug 2018 08:10:12 +0000 (08:10 +0000)]
Replace two asp->peer with prefix_peer(p) which is the same.
claudio [Mon, 6 Aug 2018 08:06:49 +0000 (08:06 +0000)]
Assign peer1 and peer2 early on and use them everywhere instead of aspX->peer.
mestre [Mon, 6 Aug 2018 06:30:06 +0000 (06:30 +0000)]
Remove cpath pledge(2) promise. We decided that not deleting the unix control
sockets cause no harm and this way we close another attack surface by not
allowing the daemon to create/delete any more files.
OK kn@
mestre [Mon, 6 Aug 2018 06:27:32 +0000 (06:27 +0000)]
Drop "rpath" from pledge(2) after ncurses initialization.
Discussed with and OK tb@
OK cheloha@ on previous version
deraadt [Sun, 5 Aug 2018 23:19:49 +0000 (23:19 +0000)]
ifconfig ioctl's that bring interfaces up the first time may issue
firmware loads. The namei operations are being performed are on behalf
of the kernel not process, so use BYPASSUNVEIL.
spotted by sthen, ok beck
kettenis [Sun, 5 Aug 2018 21:05:17 +0000 (21:05 +0000)]
Fix typo that caused us to misassign parents.
ok patrick@
schwarze [Sun, 5 Aug 2018 19:12:56 +0000 (19:12 +0000)]
use .Fl macro for command line options
schwarze [Sun, 5 Aug 2018 19:07:30 +0000 (19:07 +0000)]
wrong macro
beck [Sun, 5 Aug 2018 14:23:57 +0000 (14:23 +0000)]
Decouple unveil from the pledge flags, by adding dedicated unveil flags
to the namei args. This fixes a bug where chmod would be allowed when
with only READ. This also allows some further cleanup of some awkward
things like PLEDGE_STAT that will follow
Lots of assistence from semarie@ - thanks!
ok semarie@
bcook [Sun, 5 Aug 2018 14:17:12 +0000 (14:17 +0000)]
Remove unnecessary NULL check from get_cert_by_subject since
sk_BY_DIR_HASH_find already does it, removing ambiguity later in the function.
ok tb@
beck [Sun, 5 Aug 2018 13:59:38 +0000 (13:59 +0000)]
Prevent a panic when reboot -q is used by making unveil_removevnode
sane.
ok kettenis@
bcook [Sun, 5 Aug 2018 13:35:45 +0000 (13:35 +0000)]
Fix a memory leak in i2d_RSA_NET on failure of ASN1_STRING_set.
Found by Coverity.
Feedback and ok tb@
schwarze [Sun, 5 Aug 2018 13:32:25 +0000 (13:32 +0000)]
remove duplicate installation of the SIGINT handler;
from Martin Kopta <martin at kopta dot eu>
bcook [Sun, 5 Aug 2018 13:30:04 +0000 (13:30 +0000)]
In RSA_padding_add_PKCS1_OAEP, dbmask needs to be freed on failure.
ok tb@
jsg [Sun, 5 Aug 2018 13:20:58 +0000 (13:20 +0000)]
enable virtio pci attachment on armv7
ratchov [Sun, 5 Aug 2018 11:46:31 +0000 (11:46 +0000)]
Mention ioctls that don't work for the control device.
ok jmc
ratchov [Sun, 5 Aug 2018 11:41:50 +0000 (11:41 +0000)]
Use english words instead of file names.
ok jmc
bcook [Sun, 5 Aug 2018 11:19:25 +0000 (11:19 +0000)]
Fix memory leak in i2b_PVK in error handling.
Simplify parameter checks since this is only called from one place.
Found by Coverity, CID 183502.
ok beck@
ratchov [Sun, 5 Aug 2018 10:31:49 +0000 (10:31 +0000)]
Remove obvious or repeating sentinces.
ok jmc
mestre [Sun, 5 Aug 2018 09:37:52 +0000 (09:37 +0000)]
Since -s argument is no longer checked, during reexec, the argv size then must
be shortened by 1.
OK florian@
mestre [Sun, 5 Aug 2018 09:37:05 +0000 (09:37 +0000)]
Since -s argument is no longer checked, during reexec, the argv size then must
be shortened by 1.
OK florian@
mestre [Sun, 5 Aug 2018 09:33:13 +0000 (09:33 +0000)]
Remove cpath pledge(2) promise. We decided that not deleting the unix control
sockets cause no harm and this way we close another attack surface by not
allowing the daemon to create/delete any more files.
While here also scramble pledge promises to their canonical form.
OK florian@
nicm [Sun, 5 Aug 2018 08:59:30 +0000 (08:59 +0000)]
calloc the mode data instead of malloc and initialize everything.
jsg [Sun, 5 Aug 2018 08:54:43 +0000 (08:54 +0000)]
enable bio and softraid on arm64 ramdisk
jsg [Sun, 5 Aug 2018 08:54:05 +0000 (08:54 +0000)]
enable bio and softraid on armv7 ramdisk
mestre [Sun, 5 Aug 2018 08:41:28 +0000 (08:41 +0000)]
Remove now unused header which I forgot to commit on previous.
mestre [Sun, 5 Aug 2018 08:20:54 +0000 (08:20 +0000)]
Remove cpath pledge(2) promise. We decided that not deleting the unix control
sockets cause no harm and this way we close another attack surface by not
allowing the daemon to create/delete any more files.
OK florian@
mestre [Sun, 5 Aug 2018 08:16:24 +0000 (08:16 +0000)]
Remove cpath pledge(2) promise. We decided that not deleting the unix control
sockets cause no harm and this way we close another attack surface by not
allowing the daemon to create/delete any more files.
OK akoshibe@ florian@