2 years agoUpgrade libarchive, bsdcat(1), bsdcpio(1) and bsdtar(1). 1/2
Daniel Fojt [Sat, 27 Jun 2020 10:19:57 +0000 (12:19 +0200)]
Upgrade libarchive, bsdcat(1), bsdcpio(1) and bsdtar(1). 1/2

Merge branch vendor/LIBARCHIVE into master.

2 years agovendor/libarchive: upgrade from 3.3.3 to 3.4.3 vendor/LIBARCHIVE
Daniel Fojt [Sat, 27 Jun 2020 10:18:46 +0000 (12:18 +0200)]
vendor/libarchive: upgrade from 3.3.3 to 3.4.3

Fixes CVE-2019-18408.

New features:
- support for pzstd compressed files
- support for RHT.security.selinux tar extended attribute
- atomic file extraction support (bsdtar -x --safe-writes)
- unicode filename support for reading lha/lzh archives
- new pax write option "xattrhdr"
- read support for RAR 5.0 archives
- read support for ZIPX archives with xz, lzma, ppmd8 and bzip2
- support for non-recursive list and extract
- new tar option: --exclude-vcs
- 64-bit ar format support

- use-after-free in a certain ARCHIVE_FAILED situation
- various zstd fixes and improvements
- child process handling fixes
- compression buffer fix in XAR writer
- fix for uname and gname longer than 32 characters in PAX writer
- fix segfault when archiving hard links in ISO9660 and XAR writers
- fix support for extracting 7z archive entries with Delta filter
- security fixes and optimizations to write filter logic
- security fix related to use of readlink(2)
- sparse file handling fixes
- fix reading Android APK archives
- fix problems related to unreadable directories
- patches from OpenBSD to libarchive_fe/passphrase.c
- support extracting ACLs with in-entry comments
- support extracting extattrs as non-root on non-user-writable files
- various resource leak, use-after-free and crash fixes

For details, see release notes or commit history on github:

2 years agoFix various typos: a -> an
Sascha Wildner [Sat, 27 Jun 2020 09:40:58 +0000 (11:40 +0200)]
Fix various typos: a -> an

2 years agoshare/mk/bsd.README: Add some info about bsd.host{libs,prog}.mk.
Sascha Wildner [Sat, 27 Jun 2020 09:11:33 +0000 (11:11 +0200)]
share/mk/bsd.README: Add some info about bsd.host{libs,prog}.mk.

2 years agoshare/mk/bsd.README: Remove reference to pmake documentation.
Sascha Wildner [Sat, 27 Jun 2020 09:06:05 +0000 (11:06 +0200)]
share/mk/bsd.README: Remove reference to pmake documentation.

We've since switched to bmake.

2 years agotraceroute.8: Mention ping6(8) and traceroute6(8)
Aaron LI [Fri, 26 Jun 2020 14:45:21 +0000 (22:45 +0800)]
traceroute.8: Mention ping6(8) and traceroute6(8)

2 years agoping.8: Mention ping6(8) and traceroute6(8)
Aaron LI [Fri, 26 Jun 2020 14:43:28 +0000 (22:43 +0800)]
ping.8: Mention ping6(8) and traceroute6(8)

2 years agoipfw3: Fix several comments and error messages
Aaron LI [Thu, 14 Feb 2019 07:28:02 +0000 (15:28 +0800)]
ipfw3: Fix several comments and error messages

2 years agoifconfig(8): Support to filter output by interface groups
Aaron LI [Fri, 26 Jun 2020 14:34:43 +0000 (22:34 +0800)]
ifconfig(8): Support to filter output by interface groups

Add options '-g <match_group>' and '-G <no_group>' to select and
unselect interfaces by groups in the output of 'ifconfig -a', just
like the existing '-d' and '-u' options to select only interfaces
that are down or up, respectively.  Note that '-g' and '-G' options
can be used at the same time to apply both conditions and their
arguments may contain shell patterns.

* To exclude loopback from the list:
      ifconfig -a -G lo
* To list interfaces whose group names begin with 't':
      ifconfig -a -g 't*'

Obtained from FreeBSD (revision 361790; review D25029)

2 years agoifconfig.8: Update to show '-d' and '-u' is mutually exclusive
Aaron LI [Fri, 26 Jun 2020 14:21:56 +0000 (22:21 +0800)]
ifconfig.8: Update to show '-d' and '-u' is mutually exclusive

2 years agoifconfig(8): Speed up non-status operations to a single interface
Aaron LI [Fri, 26 Jun 2020 13:38:11 +0000 (21:38 +0800)]
ifconfig(8): Speed up non-status operations to a single interface

When performing a non-status operation on a single interface (e.g., set
address or flags), it is not necessary for ifconfig(8) to build a list
of all addresses in the system, sort them, and then iterate through them
to look for the single interface of interest.

Obtained from FreeBSD (revision 343535; review D18919)

2 years agoifconfig(8): Group addresses of each interface by family
Aaron LI [Fri, 26 Jun 2020 12:56:17 +0000 (20:56 +0800)]
ifconfig(8): Group addresses of each interface by family

Group the list of addresses associated with an interface by the address
family.  A stable sorting algorithm is employed here to preserve the
order of addresses inside a single group of each interface.

Obtained from FreeBSD (revisions 278080 and 278107).

2 years agoifconfig(8): Use getifaddrs(3) from libc
Aaron LI [Fri, 26 Jun 2020 09:59:53 +0000 (17:59 +0800)]
ifconfig(8): Use getifaddrs(3) from libc

Use libc's getifaddrs(3) instead of implementing its own version.

Obtained from FreeBSD (revisions 166956 and 199770); with minor

While there, also adjust some styles.

2 years agoifconfig(8): Use correct interface name when setting flags
Aaron LI [Fri, 26 Jun 2020 07:53:07 +0000 (15:53 +0800)]
ifconfig(8): Use correct interface name when setting flags

Obtained from FreeBSD (revision 187253).

With this change, the comment to setifflags() is now obsolete, so remove
it.  While there, improve styles a bit.

2 years agoifconfig(8): Add '-f' option to print in more formats
Aaron LI [Fri, 26 Jun 2020 06:02:58 +0000 (14:02 +0800)]
ifconfig(8): Add '-f' option to print in more formats

* Add the '-f' option to control the output formats of addresses,
  inet (IPv4) subnet masks, inet6 (IPv6) prefix length, Ethernet (MAC)
  address.  The following output formats are supported:

  - address: numeric (default), host, FQDN
  - inet (IPv4) subnet masks: CIDR, dotted-quad, and traditional hex
    output (default)
  - inet6 (IPv6) prefix length: CIDR, traditional integer format
  - ether (MAC address): colon-separated (default), dash-separated

* The 'IFCONFIG_FORMAT' environment variable has the same usage as the
  '-f' option and can be overrided by the latter.

* Some minor cleanups.

Obtained from FreeBSD (revisions 301059 and 301185; review D2856), but
with my own minor modifications.

2 years agoifconfig(8): Print more WPS attributes in verbose "list scan" output
Aaron LI [Tue, 5 May 2020 02:58:20 +0000 (10:58 +0800)]
ifconfig(8): Print more WPS attributes in verbose "list scan" output

* Move WPS-related defines to a dedicated file
* Add handlers for more WPS attributes

Obtained-from: FreeBSD (revision 343204)

2 years agoifconfig(8): Eliminate trailing whitespace on inet6 and group lines
Aaron LI [Sun, 12 Apr 2020 13:53:32 +0000 (21:53 +0800)]
ifconfig(8): Eliminate trailing whitespace on inet6 and group lines

Obtained from FreeBSD:

2 years agoifconfig(8): Drop two unused macros from ifieee80211.c
Aaron LI [Sun, 12 Apr 2020 13:36:22 +0000 (21:36 +0800)]
ifconfig(8): Drop two unused macros from ifieee80211.c

Obtained from FreeBSD:

2 years agoifconfig(8): Make lagg creation more fault-tolerant
Aaron LI [Sun, 12 Apr 2020 13:29:32 +0000 (21:29 +0800)]
ifconfig(8): Make lagg creation more fault-tolerant

* Warn, don't exit, when SIOCSLAGGPORT returns an error.

  When we exit with an error during lagg creation, a single failed NIC
  (which no longer attaches) can prevent lagg creation and other
  configuration, such as adding an IPv4 address, and thus leave a
  machine unreachable.

* Preserve non-EEXISTS errors for exit status from SIOCSLAGGPORT, in
  case scripts are looking for it. Hopefully this can be extended if
  other parts of ifconfig can allow a "soft" failure.

* Improve the warning message to mention what lagg and what member are

Obtained from FreeBSD:

2 years agoifconfig(8): Render non-ASCII SSID names with UTF-8 locales
Aaron LI [Sun, 12 Apr 2020 12:56:39 +0000 (20:56 +0800)]
ifconfig(8): Render non-ASCII SSID names with UTF-8 locales

Currently ifconfig(8) only prints the hex representation of ssid names
with non-ASCII characters.  Many modern terminals are able to properly
render non-ASCII characters.  This change checks if the terminal charmap
is UTF-8, and if so, will render the characters, rather than the hex

This behavior is circumvented by running ifconfig(8) in a non-UTF8
locale; e.g. C or POSIX.

Obtained from FreeBSD:

2 years agoUpgrade awk(1). 2/2
Daniel Fojt [Thu, 25 Jun 2020 04:16:24 +0000 (06:16 +0200)]
Upgrade awk(1). 2/2

Adapt Makefile and update README.{DELETED,DRAGONFLY}.

2 years agoUpgrade awk(1). 1/2
Daniel Fojt [Thu, 25 Jun 2020 04:15:47 +0000 (06:15 +0200)]
Upgrade awk(1). 1/2

Merge branch vendor/AWK into master.

2 years agovendor/awk: upgrade from 20121220 to 20200612
Daniel Fojt [Wed, 24 Jun 2020 05:45:41 +0000 (07:45 +0200)]
vendor/awk: upgrade from 20121220 to 20200612

Summary of notable changes:

- fixed buffer overflow in error reporting
- OFS value used to rebuild the record was incorrect
- add POSIX standard %a and %A to supported formats
- decrementing NF did not change $0
- unary plus on a string constant returned the string
- avoid undefined behaviour when using ctype(3) functions in relex()
- make getline handle numeric strings
- added support for POSIX-standard interval expressions in regexps
- use of random(3) as the random number generator
- support POSIX-specified C-style escape sequences "\a" and "\v" in
  command line arguments and regular expressions
- fix various array / memory overruns
- import code from NetBSD awk that implements RS as a regular expression
- add an optimization for string concatenation
- fix a bug whereby a{0,3} could match four a's
- input/output errors on closing files are now fatal instead of mere
- if POSIXLY_CORRECT is set in the environment, then sub and gsub use
  POSIX rules for multiple backslashes
- it's no longer necessary to use the -y flag to bison
- backslash continuation inside strings removes the newline
- avoid any spurious errors left over from previous calls

For details, see FIXES, or commit history at

2 years agodrm: Add headers, stubs and constants required by Linux 4.10 code
François Tigeot [Wed, 24 Jun 2020 15:45:07 +0000 (17:45 +0200)]
drm: Add headers, stubs and constants required by Linux 4.10 code

2 years agodrm: Move acpi_is_video_device() to linux/acpi.h
François Tigeot [Wed, 24 Jun 2020 14:58:54 +0000 (16:58 +0200)]
drm: Move acpi_is_video_device() to linux/acpi.h

2 years agobsd-family-tree: Sync with FreeBSD (fix 1BSD release date).
Sascha Wildner [Tue, 23 Jun 2020 19:48:04 +0000 (21:48 +0200)]
bsd-family-tree: Sync with FreeBSD (fix 1BSD release date).

2 years agoddb.4: document hardware watchpoints and dwatch
Krzysztof Piecuch [Sun, 21 Jun 2020 18:48:48 +0000 (18:48 +0000)]
ddb.4: document hardware watchpoints and dwatch

Document dwatch, hwatch, dhwatch commands.
While there, mention possible command aliases.

2 years agotmpfs - Try to avoid a tmpfs node deadlock in rename
Matthew Dillon [Sat, 20 Jun 2020 18:26:05 +0000 (11:26 -0700)]
tmpfs - Try to avoid a tmpfs node deadlock in rename

* Simultaneous renames of A -> DIR/B  and DIR/C -> D can
  deadlock tmpfs due to an incorrect assumption.  The directory
  vnodes are only referenced, not locked, so the namecache locks
  are insufficient.

* Solve by ordering the rename directories deterministically.  This
  is probably not a perfect solution but it should be good enough.
  Use a simple pointer inequality and a direct directory-subdirectory

2 years agomountd - Turn on SO_REUSEADDR (2)
Matthew Dillon [Sat, 20 Jun 2020 18:24:22 +0000 (11:24 -0700)]
mountd - Turn on SO_REUSEADDR (2)

* After several years it turns out that just turning SO_REUSEADDR
  on can cause a duplicate port to be assigned when an anonymous
  port is requested.  This is really a bug in the kernel which also
  needs to be fixed, but for now only set this option when a specific
  port is selected.

* Enhance bind error reporting.

2 years agotail(1): Implement tac(1) as the reverse version of cat(1)
Aaron LI [Sat, 20 Jun 2020 07:10:41 +0000 (15:10 +0800)]
tail(1): Implement tac(1) as the reverse version of cat(1)

The tac(1) is the reverse version of cat(1) and is implemented with
'tail -rq'.

Update cat.1, rev.1 and tail.1 man pages to mention the new tac(1).

The tac.1 man page is obtained from NetBSD.  The implementation is also
inspired by NetBSD but is different.

2 years agotail(1): Add -v flag to always print a header
Aaron LI [Sat, 20 Jun 2020 03:52:32 +0000 (11:52 +0800)]
tail(1): Add -v flag to always print a header

* Add the '-v' flag to always print a header for each file, even if only
  a single file is specified.  Obtained from NetBSD.
* Add '__dead2' attribute to the non-return function 'usage()'.
* Improve several markups in the man page.

2 years agohead(1): Support '-q' and '-v' flags and improve man page
Aaron LI [Fri, 19 Jun 2020 05:17:29 +0000 (13:17 +0800)]
head(1): Support '-q' and '-v' flags and improve man page

* Support the '-q' flag to never print headers of each filename, and the
  '-v' flag to always print the headers, which are the GNU extensions to
  this tool.
* Improve the man page to include the 'COMPATIBILITY' and 'STANDARDS'

Obtained-from: NetBSD

2 years agohead(1): Minor cleanups
Aaron LI [Fri, 19 Jun 2020 05:13:39 +0000 (13:13 +0800)]
head(1): Minor cleanups

* Add '__dead2' attribute to non-return function 'usage()'.
* Move the 'first' out from the initializer part of the 'for' loop and
  change it to a boolean, making the code a bit cleaner.
* Remove one duplicate copyright notice.

2 years agoefibootmgr.8: Add commas before long options for better readability.
Sascha Wildner [Fri, 19 Jun 2020 06:32:14 +0000 (08:32 +0200)]
efibootmgr.8: Add commas before long options for better readability.

While here, upper-case .Sh Examples -> EXAMPLES.

2 years agoefi{dp,var}.8: Add commas before long options for better readability.
Sascha Wildner [Fri, 19 Jun 2020 06:21:32 +0000 (08:21 +0200)]
efi{dp,var}.8: Add commas before long options for better readability.

2 years agoetc/network.subr: enhance wlan initialization
Daniel Fojt [Thu, 18 Jun 2020 06:16:04 +0000 (08:16 +0200)]
etc/network.subr: enhance wlan initialization

Teach wlan_up() and wlan_down() to process just a single interface
passed as optional argument. If no argument is given, process all
"net.wlan.devices" just like before.

Reviewed by: Aaron LI

2 years agotail(1): improve style consistency of previous change
Daniel Fojt [Thu, 18 Jun 2020 04:28:36 +0000 (06:28 +0200)]
tail(1): improve style consistency of previous change

Suggested by: Sascha Wildner

2 years agotail(1): fix misbehaviour on pseudo filesystems
Daniel Fojt [Wed, 17 Jun 2020 06:56:17 +0000 (08:56 +0200)]
tail(1): fix misbehaviour on pseudo filesystems

When processing regular zero-sized files, use display_lines() instead of
rlines(). This fixes tail(1) behaviour with files on pseudo filesystems
(like procfs) which are often reported to have zero size while having
a content.

Issue: https://bugs.dragonflybsd.org/issues/3034

2 years agoetc/periodic: fix off-by-one error in 220.snapshot-hammer2
Daniel Fojt [Tue, 16 Jun 2020 17:05:40 +0000 (19:05 +0200)]
etc/periodic: fix off-by-one error in 220.snapshot-hammer2

Increase $_keep before passing it to tail(1) as the output from
tail -n+N starts at N-th line of its input which is the last
snapshot to be kept actually.

2 years agokernel: improve open(2) error handling
Daniel Fojt [Tue, 16 Jun 2020 05:23:19 +0000 (07:23 +0200)]
kernel: improve open(2) error handling

When trying to open a file with O_CREAT and O_EXCL flags while the file
exists, disregard the file permissions and always return EEXIST as
described in manpage and required by the standard.

Issue: https://bugs.dragonflybsd.org/issues/2953

2 years agodhcpcd: Update README.DRAGONFLY
Roy Marples [Tue, 16 Jun 2020 08:50:55 +0000 (08:50 +0000)]

2 years agodhcpcd: Fix build for 9.1.2
Roy Marples [Tue, 16 Jun 2020 08:47:49 +0000 (08:47 +0000)]
dhcpcd: Fix build for 9.1.2

2 years agoMerge branch 'vendor/DHCPCD'
Roy Marples [Tue, 16 Jun 2020 08:46:44 +0000 (08:46 +0000)]
Merge branch 'vendor/DHCPCD'

2 years agoUpdate to dhcpcd-9.1.2 with the following changes:
Roy Marples [Tue, 16 Jun 2020 08:43:31 +0000 (08:43 +0000)]
Update to dhcpcd-9.1.2 with the following changes:

 * BSD: Only mark static routes from dhcpcd.conf as static
 * DHCP6: Ensure requested addresses are requested
 * DHCP6: Fix prefix length calculation when no prefix specified

 * privsep: Implement a resource limited sandbox

You will see a control proxy process now.
This is for the resource limited sandbox so that we can isolate
requests over the control socket.
For NetBSD, FreeBSD and derivatives such as DragonFlyBSD this is a massive win
as these OS now enjoy a similar level of protection as Capsicum or Pledge,
but without the syscall filtering.

2 years agodrm/i915: enable i915_gem_phys_ops
François Tigeot [Tue, 16 Jun 2020 08:05:25 +0000 (10:05 +0200)]
drm/i915: enable i915_gem_phys_ops

2 years agosed(1): sync with FreeBSD
Daniel Fojt [Mon, 15 Jun 2020 17:15:41 +0000 (19:15 +0200)]
sed(1): sync with FreeBSD

Summary of notable changes:

- fix sed functions 'i' and 'a' from discarding leading white space
- rewrite the main loop of the "sed s/..." command
- fix -i option behavior with 'q' command
- process \r, \n, and \t
- attempt to learn about hex escapes (e.g. \x27)
- read commands from stdin when -f - is passed

Reviewed by: Sascha Wildner

2 years ago<protocols/dumprestore.h>: Fix include guard comment.
Sascha Wildner [Mon, 15 Jun 2020 18:25:18 +0000 (20:25 +0200)]
<protocols/dumprestore.h>: Fix include guard comment.

2 years agodrm/i915: Use kmem_cache functions
François Tigeot [Mon, 15 Jun 2020 10:16:39 +0000 (12:16 +0200)]
drm/i915: Use kmem_cache functions

2 years agodrm/linux: Add kmem_cache functions and related constants
François Tigeot [Mon, 15 Jun 2020 09:51:21 +0000 (11:51 +0200)]
drm/linux: Add kmem_cache functions and related constants

2 years agoUpdate the pciconf(8) database.
Sascha Wildner [Mon, 15 Jun 2020 09:13:32 +0000 (11:13 +0200)]
Update the pciconf(8) database.

May 29, 2020 snapshot from https://pci-ids.ucw.cz

2 years agoBring in efibootmgr(8) from FreeBSD.
Sascha Wildner [Sat, 13 Jun 2020 06:52:58 +0000 (08:52 +0200)]
Bring in efibootmgr(8) from FreeBSD.

Taken-from: FreeBSD

2 years agoinitrd/mkinitrd.sh: Use 'du -t' to simplify size calculation
Aaron LI [Fri, 12 Jun 2020 15:57:01 +0000 (23:57 +0800)]
initrd/mkinitrd.sh: Use 'du -t' to simplify size calculation

The du(1)'s '-t' option calculates the apparent size, which is what we
want here for determining the required size of the initrd image.  This
saves us a shell function to do the same work.

2 years agoetc/periodic: Use 'LINKS' to create links for 220.snapshot-hammer2
Aaron LI [Fri, 12 Jun 2020 14:58:42 +0000 (22:58 +0800)]
etc/periodic: Use 'LINKS' to create links for 220.snapshot-hammer2

Avoid the ad-hoc 'ln' command.  In addition, the original linked-to
files are absolute paths but missing the '${DESTDIR}', so they can be on
two different installations.  Use 'LINKS' that creates hard-links to
fix this issue.

Reviewed-by: swildner, deef
2 years agomk/bsd.README: Document 'SYMLINKS' and update 'LINKS' and 'MLINKS'
Aaron LI [Fri, 12 Jun 2020 14:54:53 +0000 (22:54 +0800)]
mk/bsd.README: Document 'SYMLINKS' and update 'LINKS' and 'MLINKS'

* Add description of 'SYMLINKS' that creates symbolic links.
* 'MLINKS' creates hard links rather than soft links.
* Update description of 'LINKS' and the example.  '${DESTDIR}' will be
  auto prepended so it should not be used.

Reviewed-by: swildner
2 years agoUpgrade less(1). 2/2
Daniel Fojt [Fri, 12 Jun 2020 11:34:05 +0000 (13:34 +0200)]
Upgrade less(1). 2/2

- import regenerated defines.h
- fix -Werror=unused-variable in screen.c

2 years agoUpgrade less(1). 1/2
Daniel Fojt [Fri, 12 Jun 2020 11:33:18 +0000 (13:33 +0200)]
Upgrade less(1). 1/2

Merge branch vendor/LESS into master.

2 years agovendor/less: upgrade from 481 to 551 vendor/LESS
Daniel Fojt [Fri, 12 Jun 2020 11:32:09 +0000 (13:32 +0200)]
vendor/less: upgrade from 481 to 551

- unicode tables updated
- new commands added
- new cmdline options introduced
- bugs and memory leaks fixed

For details see:


2 years agokernel - Refactor sysclock_t from 32 to 64 bits (2)
Matthew Dillon [Thu, 11 Jun 2020 22:57:04 +0000 (15:57 -0700)]
kernel - Refactor sysclock_t from 32 to 64 bits (2)

* Cputimer reload values can be negative, check condition and
  set a small positive reload value instead.

* Also avoids muldivu64() overflow warnings on the console.

Reported-by: kworr
2 years agoshare/example/Makefile: Sort better.
Sascha Wildner [Thu, 11 Jun 2020 20:37:18 +0000 (22:37 +0200)]
share/example/Makefile: Sort better.

2 years agoProperly ignore "trim" failures in swapon(8).
Daniel Fojt [Thu, 11 Jun 2020 18:11:55 +0000 (20:11 +0200)]
Properly ignore "trim" failures in swapon(8).

When trying to "trim" a swap device that doesn't support this, just ignore
particular ioctl() failure and continue activating the swap. This actually
matches the behaviour described in swapon(8) manpage.

Issue: https://bugs.dragonflybsd.org/issues/3207

2 years agoUpgrade diffutils. 2/2
Daniel Fojt [Wed, 10 Jun 2020 09:32:29 +0000 (11:32 +0200)]
Upgrade diffutils. 2/2

- regenerate header files
- adapt Makefile to vendor update

2 years agoUpgrade diffutils. 1/2
Daniel Fojt [Thu, 11 Jun 2020 12:33:51 +0000 (14:33 +0200)]
Upgrade diffutils. 1/2

Merge branch vendor/DIFFUTILS into master.

2 years agovendor/diffutils: upgrade from 3.3 to 3.7 vendor/DIFFUTILS
Daniel Fojt [Wed, 10 Jun 2020 09:05:53 +0000 (11:05 +0200)]
vendor/diffutils: upgrade from 3.3 to 3.7

Summary of notable changes:

- new options --color and --palette to generate and configure colored
  output, compatible with less -R
- when binary files differ, diff now exits with status 1 as POSIX requires
- unless the --ignore-file-name-case option is used, diff now
  considers file names to be equal only if they are byte-for-byte
- diff -B no longer generates incorrect output if the two inputs each end
  with a one-byte incomplete line
- diff --brief no longer reports a difference for unusual identical files
- diff3 no longer malfunctions due to use-after-free
- using an invalid regular expression with --ignore-matching-lines=RE (-I)
  no longer causes stack overflow
- possible uninitialized memory read with --strip-trailing-cr fixed
- default algorithm has been adjusted to output higher-quality results,
  and further tweaked to deal better with larger files

For a complete history of changes see:


2 years agokernel: fix misleading error from allocating file descriptors
Daniel Fojt [Thu, 11 Jun 2020 09:25:27 +0000 (11:25 +0200)]
kernel: fix misleading error from allocating file descriptors

Return EINVAL instead of EMFILE when requested new file descriptor number
exceeds the limit.

Discussed with: Sascha Wildner

2 years agoDeduplicate login environment setup.
Daniel Fojt [Tue, 9 Jun 2020 11:28:45 +0000 (13:28 +0200)]
Deduplicate login environment setup.

Revise default environment assignments in login.conf(5).

Update share/skel/dot.profile to match share/skel/dot.cshrc, ie. comment
assignments done via login.conf (PATH, BLOCKSIZE, umask).

Drop etc/root and update "distribution" target in Makefile to use
share/skel/* instead.

Discussed with and reviewed by: Sascha Wildner
Issue: https://bugs.dragonflybsd.org/issues/3220

2 years agoworld - Change serial port default from 9600 to 115200
Matthew Dillon [Wed, 10 Jun 2020 21:00:28 +0000 (14:00 -0700)]
world - Change serial port default from 9600 to 115200

* Long overdue change, all serial port defaults are now set to

* NOTE: legacy BIOS boot0/boot1 use int 0x14 to set the serial
  console baud rate.  This BIOS call only supports up to 9600.
  But once you get into the boot loader it should be able to set
  the correct baud rate.

2 years agoboot.8: Markup a kernel configuration option better.
Sascha Wildner [Wed, 10 Jun 2020 20:06:46 +0000 (22:06 +0200)]
boot.8: Markup a kernel configuration option better.

2 years agouefi.8: Add a reference to efidp(8).
Sascha Wildner [Wed, 10 Jun 2020 19:27:54 +0000 (21:27 +0200)]
uefi.8: Add a reference to efidp(8).

2 years agohammer2.8: Sort SEE ALSO.
Sascha Wildner [Wed, 10 Jun 2020 14:14:19 +0000 (16:14 +0200)]
hammer2.8: Sort SEE ALSO.

2 years agoSync shutdown(8) and reboot(8) with FreeBSD
Krzysztof Piecuch [Sat, 6 Jun 2020 21:55:06 +0000 (21:55 +0000)]
Sync shutdown(8) and reboot(8) with FreeBSD

shutdown now understands offsets in seconds, minutes and hours.
reboot is harder to kill ignoring SIGPIPE, SIGINT, SIGQUIT and SIGSTP.

Taken-from: FreeBSD

2 years agoStop overwriting /etc/gettytab on every 'make upgrade'.
Sascha Wildner [Tue, 9 Jun 2020 19:05:42 +0000 (21:05 +0200)]
Stop overwriting /etc/gettytab on every 'make upgrade'.

There isn't really any important movement in it from our side, but there
are some scenarios (autologin for example) where a user may have changed

2 years agokernel - Refactor sysclock_t from 32 to 64 bits
Matthew Dillon [Tue, 9 Jun 2020 16:08:16 +0000 (09:08 -0700)]
kernel - Refactor sysclock_t from 32 to 64 bits

* Refactor the core cpu timer API, changing sysclock_t from 32
  to 64 bits.  Provide a full 64-bit count from all sources.

* Implement muldivu64() using gcc's 128-bit integer type.  This
  functions takes three 64-bit valus, performs (a * b) / d
  using a 128-bit intermediate calculation, and returns a 64-bit

  Change all timer scaling functions to use this function which
  effectively gives systimers the capability of handling any
  timeout that fits 64 bits for the timer's resolution.

* Remove TSC frequency scaling, it is no longer needed.  The
  TSC timer is now used at its full resolution.

* Use atomic_fcmpset_long() instead of a clock spinlock when
  updating the msb bits for hardware timer sources less than
  64 bits wide.

* Properly recalculate existing systimers when the clock source
  is changed.  Existing systimers were not being recalculated,
  leading to the system failing to boot when time sources had
  radically different clock frequencies.

2 years agodrm/linux: Add work_pending()
François Tigeot [Tue, 9 Jun 2020 07:32:37 +0000 (09:32 +0200)]
drm/linux: Add work_pending()

2 years agodrm/linux: Add raw_read_seqcount()
François Tigeot [Tue, 9 Jun 2020 07:31:49 +0000 (09:31 +0200)]
drm/linux: Add raw_read_seqcount()

2 years agodrm/linux: Add swiotlb_max_segment()
François Tigeot [Tue, 9 Jun 2020 07:30:24 +0000 (09:30 +0200)]
drm/linux: Add swiotlb_max_segment()

2 years agosbin/newfs_hammer2: Remove extra line break after printf outputs
Tomohiro Kusumi [Mon, 8 Jun 2020 17:50:04 +0000 (02:50 +0900)]
sbin/newfs_hammer2: Remove extra line break after printf outputs

This probably came from newfs_hammer.c, but HAMMER2 doesn't have
a note after this.

2 years agoread.2: improve formatting of previous addition
Daniel Fojt [Mon, 8 Jun 2020 17:11:42 +0000 (19:11 +0200)]
read.2: improve formatting of previous addition

- start sentences on new lines
- highlight mentioned functions properly
- add a reference to readdir(3)

Pointed out by: Sascha Wildner

2 years agoread.2: describe EISDIR error
Daniel Fojt [Mon, 8 Jun 2020 13:13:52 +0000 (15:13 +0200)]
read.2: describe EISDIR error

Discussed with: Sascha Wildner

2 years agokernel: more precious errors from read()ing hammer and hammer2
Daniel Fojt [Mon, 8 Jun 2020 12:42:10 +0000 (14:42 +0200)]
kernel: more precious errors from read()ing hammer and hammer2

To conform POSIX, return EISDIR instead of EINVAL when trying to read(2)
a directory from hammer or hammer2 filesystem.

Discussed with and reviewed by: Sascha Wildner

2 years agoImplement periodic hammer2 snapshots.
Daniel Fojt [Mon, 8 Jun 2020 07:38:49 +0000 (09:38 +0200)]
Implement periodic hammer2 snapshots.

- add new periodic(8) script 220.snapshot-hammer2 to daily interval
- symlink the script also into weekly and monthly intervals
- extend default periodic.conf(5) with variables to configure the script
- describe new variables in periodic.conf.5 manpage
- mention the functionality also in hammer2.8 manpage

Note: "daily" variables are used by the script as defaults, so it's
      possible to set custom cron entry for different periodic invocation
      of the script, to create for example hourly snapshots

Discussed with, reviewed and tested by: Matthew Dillon

2 years agodrm/linux: Rewrite dev_printk()
François Tigeot [Mon, 8 Jun 2020 05:51:16 +0000 (07:51 +0200)]
drm/linux: Rewrite dev_printk()

2 years agodrm/linux: Rewrite seq_printf()
François Tigeot [Mon, 8 Jun 2020 05:46:06 +0000 (07:46 +0200)]
drm/linux: Rewrite seq_printf()

2 years agodrm/mm: Fix definitions of alloc_pages() and __free_pages()
François Tigeot [Mon, 8 Jun 2020 05:42:44 +0000 (07:42 +0200)]
drm/mm: Fix definitions of alloc_pages() and __free_pages()

2 years agodrm/linux: Add mutex_lock_nested() and mutex_trylock_recursive()
François Tigeot [Mon, 8 Jun 2020 05:42:20 +0000 (07:42 +0200)]
drm/linux: Add mutex_lock_nested() and mutex_trylock_recursive()

2 years agodrm/linux: Add list_for_each_entry_safe_reverse()
François Tigeot [Mon, 8 Jun 2020 05:39:28 +0000 (07:39 +0200)]
drm/linux: Add list_for_each_entry_safe_reverse()

Obtained-from: FreeBSD

2 years agodrm/linux: Improve put_user()
François Tigeot [Mon, 8 Jun 2020 05:35:44 +0000 (07:35 +0200)]
drm/linux: Improve put_user()

2 years agoefidp.8: Remove unneeded .Pp
Sascha Wildner [Sun, 7 Jun 2020 20:50:44 +0000 (22:50 +0200)]
efidp.8: Remove unneeded .Pp

2 years agokernel - Refactor kern_kevent(), fix timeout overflow (ppoll() bug) (3)
Matthew Dillon [Sun, 7 Jun 2020 18:30:49 +0000 (11:30 -0700)]
kernel - Refactor kern_kevent(), fix timeout overflow (ppoll() bug) (3)

* Fix a second timer overflow.  The systimer clock variable is
  actualy only 32 bits, a 10 minute timeout will overflow it.
  Change the kqueue timeout to 1 minute to work-around.

  (We really need to redo sysclock_t from 32 to 64 bits)

* This should finally fix both swildner's panic and rsmarples
  continued early timeout issue.

Reported-by: swildner, rsmarples
2 years agodrm: Add linux/llist.h
François Tigeot [Sun, 7 Jun 2020 08:11:47 +0000 (10:11 +0200)]
drm: Add linux/llist.h

Mostly obtained from OpenBSD with a few key modifications

2 years agodrm/linux: Fix casting issues in cmpxchg()
François Tigeot [Sun, 7 Jun 2020 08:09:41 +0000 (10:09 +0200)]
drm/linux: Fix casting issues in cmpxchg()

2 years agolibefivar: Fix (instead of silence) the remaining warnings in libefivar.
Sascha Wildner [Sun, 7 Jun 2020 07:49:43 +0000 (09:49 +0200)]
libefivar: Fix (instead of silence) the remaining warnings in libefivar.

2 years agokernel - Increase KNOTE_CACHE_MAX
Matthew Dillon [Sat, 6 Jun 2020 18:08:22 +0000 (11:08 -0700)]
kernel - Increase KNOTE_CACHE_MAX

* Increase KNOTE_CACHE_MAX from 8 to 64 descriptors.  These are tiny
  descriptors, we can afford to have a larger per-cpu cache.

2 years agokernel - Refactor kern_kevent(), fix timeout overflow (ppoll() bug) (2)
Matthew Dillon [Sat, 6 Jun 2020 18:05:53 +0000 (11:05 -0700)]
kernel - Refactor kern_kevent(), fix timeout overflow (ppoll() bug) (2)

* Certain unsupported EV_ERROR events can cause kern_kevent() to
  live-lock, which hits a 'checkloop failed' panic.  Silently
  deregister such events.

* Complain and deregister any kqueue event on behalf of *poll()
  which does not set any poll return flags.

Reported-by: swildner
2 years agosbin/fsck_hammer2: Fix siz in tsnprintf()
Tomohiro Kusumi [Sat, 6 Jun 2020 17:12:06 +0000 (02:12 +0900)]
sbin/fsck_hammer2: Fix siz in tsnprintf()

Prevent small terminal width causing newline behavior in
print_blockref_stats() in verify_blockref().

2 years agoBring in efidp(8) from FreeBSD.
Sascha Wildner [Sat, 6 Jun 2020 07:09:28 +0000 (09:09 +0200)]
Bring in efidp(8) from FreeBSD.

Taken-from: FreeBSD

2 years agoSync uefisign(8) with FreeBSD.
Sascha Wildner [Sat, 6 Jun 2020 06:35:24 +0000 (08:35 +0200)]
Sync uefisign(8) with FreeBSD.

Taken-from: FreeBSD

2 years agoSync libefivar and efivar(8) with FreeBSD.
Sascha Wildner [Sat, 6 Jun 2020 05:30:48 +0000 (07:30 +0200)]
Sync libefivar and efivar(8) with FreeBSD.

Some larger adjustments were needed in efivar-dp-xlate.c to work
around geom.

Taken-from: FreeBSD

2 years agodrm: Switch to the OpenBSD dma-fence implementation
François Tigeot [Sat, 6 Jun 2020 04:50:06 +0000 (06:50 +0200)]
drm: Switch to the OpenBSD dma-fence implementation

The old NetBSD one did not respect sleep/wakeup sequences Linux code expects

2 years agodrm/linux/dma-buf: Rename struct fence to dma_fence
François Tigeot [Sat, 6 Jun 2020 04:49:35 +0000 (06:49 +0200)]
drm/linux/dma-buf: Rename struct fence to dma_fence

2 years agohammer2 - Enhance pfs-list and pfs-delete (2)
Matthew Dillon [Fri, 5 Jun 2020 20:34:41 +0000 (13:34 -0700)]
hammer2 - Enhance pfs-list and pfs-delete (2)

* Fix cast error last commit.

Reported-by: CuteLarva