diff --git a/share/security/advisories/FreeBSD-EN-20:08.tzdata.asc b/share/security/advisories/FreeBSD-EN-20:08.tzdata.asc
new file mode 100644
index 0000000000..e1e8254671
--- /dev/null
+++ b/share/security/advisories/FreeBSD-EN-20:08.tzdata.asc
@@ -0,0 +1,150 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA512
+
+=============================================================================
+FreeBSD-EN-20:08.tzdata Errata Notice
+ The FreeBSD Project
+
+Topic: Timezone database information update
+
+Category: contrib
+Module: zoneinfo
+Announced: 2020-05-12
+Affects: All supported versions of FreeBSD.
+Corrected: 2020-04-27 03:56:47 UTC (stable/12, 12.1-STABLE)
+ 2020-05-12 16:44:13 UTC (releng/12.1, 12.1-RELEASE-p5)
+ 2020-04-27 03:57:17 UTC (stable/11, 11.4-PRERELEASE)
+ 2020-05-12 16:44:13 UTC (releng/11.3, 11.3-RELEASE-p9)
+
+Note: The upcoming release of FreeBSD 11.4 was branched after the original
+commit to the stable branch and already includes the updated timezone
+information.
+
+For general information regarding FreeBSD Errata Notices and Security
+Advisories, including descriptions of the fields above, security
+branches, and the following sections, please visit
+.
+
+I. Background
+
+The tzsetup(8) program allows the user to specify the default local timezone.
+Based on the selected timezone, tzsetup(8) copies one of the files from
+/usr/share/zoneinfo to /etc/localtime. This file actually controls the
+conversion.
+
+II. Problem Description
+
+Several changes in Daylight Savings Time happened after previous FreeBSD
+releases were released that would affect many people who live in different
+countries. Because of these changes, the data in the zoneinfo files need to
+be updated, and if the local timezone on the running system is affected,
+tzsetup(8) needs to be run so the /etc/localtime is updated.
+
+III. Impact
+
+An incorrect time will be displayed on a system configured to use one of the
+affected timezones if the /usr/share/zoneinfo and /etc/localtime files are
+not updated, and all applications on the system that rely on the system time,
+such as cron(8) and syslog(8), will be affected.
+
+IV. Workaround
+
+The system administrator can install an updated timezone database from the
+misc/zoneinfo port and run tzsetup(8) to get the timezone database corrected.
+
+Applications that store and display times in Coordinated Universal Time (UTC)
+are not affected.
+
+V. Solution
+
+Please note that some third party software, for instance PHP, Ruby, Java and
+Perl, may be using different zoneinfo data source, in such cases this
+software must be updated separately. For software packages that is installed
+via binary packages, they can be upgraded by executing `pkg upgrade'.
+
+Following the instructions in this Errata Notice will update all of the
+zoneinfo files to be the same as what was released with FreeBSD release.
+
+Perform one of the following:
+
+1) Upgrade your system to a supported FreeBSD stable or release / security
+branch (releng) dated after the correction date. Restart all the affected
+applications and daemons, or reboot the system.
+
+2) To update your system via a binary patch:
+
+Systems running a RELEASE version of FreeBSD on the i386 or amd64
+platforms can be updated via the freebsd-update(8) utility:
+
+# freebsd-update fetch
+# freebsd-update install
+
+Restart all the affected applications and daemons, or reboot the system.
+
+3) To update your system via a source code patch:
+
+The following patches have been verified to apply to the applicable
+FreeBSD release branches.
+
+a) Download the relevant patch from the location below, and verify the
+detached PGP signature using your PGP utility.
+
+# fetch https://security.FreeBSD.org/patches/EN-20:08/tzdata-2020a.patch
+# fetch https://security.FreeBSD.org/patches/EN-20:08/tzdata-2020a.patch.asc
+# gpg --verify tzdata-2020a.patch.asc
+
+b) Apply the patch. Execute the following commands as root:
+
+# cd /usr/src
+# patch < /path/to/patch
+
+c) Recompile the operating system using buildworld and installworld as
+described in .
+
+Restart all the affected applications and daemons, or reboot the system.
+
+VI. Correction details
+
+The following list contains the correction revision numbers for each
+affected branch.
+
+Branch/path Revision
+- -------------------------------------------------------------------------
+stable/12/ r360361
+releng/12.1/ r360969
+stable/11/ r360362
+releng/11.3/ r360969
+- -------------------------------------------------------------------------
+
+To see which files were modified by a particular revision, run the
+following command, replacing NNNNNN with the revision number, on a
+machine with Subversion installed:
+
+# svn diff -cNNNNNN --summarize svn://svn.freebsd.org/base
+
+Or visit the following URL, replacing NNNNNN with the revision number:
+
+
+
+VII. References
+
+The latest revision of this advisory is available at
+
+-----BEGIN PGP SIGNATURE-----
+
+iQKTBAEBCgB9FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAl663tZfFIAAAAAALgAo
+aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZD
+MEU4NzhBRTVBRkU3ODgwMjhENjM1NUQzOTc5MkY0OUVBN0U1QzIACgkQ05eS9J6n
+5cLsNw/9GPsAAKDQhjy0Y6hqfu8Jygd4sYUn/SghOFyaBvqfUdobKnPe+zy9ankg
+uM/Ytfwa/E7nKcI7z6kWiWGngmhkbMUlk4A16GmumSRV5bz/pHWYAusU8pVCtvsw
+4zrW14uK19s7Pl9KgdMf72fVGREAKQwbqL4iye9bwxUjP0yCa1VmI1RgAwhTXdqY
+fz7bCa8klq+R0oIV2JWnzw+IxwgbLYkV/1dQ5rc1IadciEmPvTls70SCKrzQ3orm
+wHpI8zvcle1JUooyQrqkf8sRTnTRNjVN+X9bFw5xMQFmVP0wahtQwXsE8wio73Ia
+J5bS40KkHUbKJ57ud+vRv3EQoArF4fhSsRUskK32C5S7ahGYIMDIdSCJcUHq7zTA
+gv9oaIgMSsoYq98M/JDdFsn49NNf4hitETChwQ2GdBpBXk77PSXz48kncm2TXPzn
+ibM8nufZxAG768sNAji4AtMb9/MiMoE2CDbmXV9pIc9XK/5hz91GDAdGY0BSH1q8
+LrwSpuOJvLHOQE1gVqxqB/DNkPOGMOqq62cagSxE4D0aGhHuTWq0h2BuF6TlbVs+
+cnog6eZ2BZcVsnkrSiWPQFPH1fg60bzmh6LdhIYRmTjWNxVu+fvm9yHUz3/SHt5N
+Kdll9Hy0QsXjtmwcgl55e4vint1ke4PeMc3sTbkpcodCRpg6faA=
+=Mxc9
+-----END PGP SIGNATURE-----
diff --git a/share/security/advisories/FreeBSD-EN-20:09.igb.asc b/share/security/advisories/FreeBSD-EN-20:09.igb.asc
new file mode 100644
index 0000000000..1c84204600
--- /dev/null
+++ b/share/security/advisories/FreeBSD-EN-20:09.igb.asc
@@ -0,0 +1,124 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA512
+
+=============================================================================
+FreeBSD-EN-20:09.igb Errata Notice
+ The FreeBSD Project
+
+Topic: igb interfaces fail to switch to inactive state
+
+Category: core
+Module: kernel
+Announced: 2020-05-12
+Affects: FreeBSD 12.1
+Corrected: 2019-10-24 14:18:06 UTC (stable/12, 12.1-STABLE)
+ 2020-05-12 16:46:14 UTC (releng/12.1, 12.1-RELEASE-p5)
+
+For general information regarding FreeBSD Errata Notices and Security
+Advisories, including descriptions of the fields above, security
+branches, and the following sections, please visit
+.
+
+I. Background
+
+The igb driver supports Intel Gigabit Ethernet interfaces.
+
+II. Problem Description
+
+The igb driver does not detect link loss, and the interface does not
+transition to "inactive" upon link loss.
+
+III. Impact
+
+Incorrect link state may lead to system-level misbehaviour (for example, lagg
+interfaces may not transition to an alternate interface) and may cause
+confusion for system administrators.
+
+IV. Workaround
+
+Bringing the interface down and back up (e.g., "ifconfig igb0 down" followed
+by "ifconfig igb0 up") may cause the status to correctly change to inactive.
+Systems not using interfaces supported by the igb driver are not affected.
+
+V. Solution
+
+Upgrade your system to a supported FreeBSD stable or release / security
+branch (releng) dated after the correction date, and reboot.
+
+Perform one of the following:
+
+1) To update your system via a binary patch:
+
+Systems running a RELEASE version of FreeBSD on the i386 or amd64
+platforms can be updated via the freebsd-update(8) utility:
+
+# freebsd-update fetch
+# freebsd-update install
+# shutdown -r +10min "Rebooting for errata update"
+
+2) To update your system via a source code patch:
+
+The following patches have been verified to apply to the applicable
+FreeBSD release branches.
+
+a) Download the relevant patch from the location below, and verify the
+detached PGP signature using your PGP utility.
+
+# fetch https://security.FreeBSD.org/patches/EN-20:09/igb.patch
+# fetch https://security.FreeBSD.org/patches/EN-20:09/igb.patch.asc
+# gpg --verify igb.patch.asc
+
+b) Apply the patch. Execute the following commands as root:
+
+# cd /usr/src
+# patch < /path/to/patch
+
+c) Recompile your kernel as described in
+ and reboot the
+system.
+
+VI. Correction details
+
+The following list contains the correction revision numbers for each
+affected branch.
+
+Branch/path Revision
+- -------------------------------------------------------------------------
+stable/12/ r354021
+releng/12.1/ r360970
+- -------------------------------------------------------------------------
+
+To see which files were modified by a particular revision, run the
+following command, replacing NNNNNN with the revision number, on a
+machine with Subversion installed:
+
+# svn diff -cNNNNNN --summarize svn://svn.freebsd.org/base
+
+Or visit the following URL, replacing NNNNNN with the revision number:
+
+
+
+VII. References
+
+
+
+The latest revision of this advisory is available at
+
+-----BEGIN PGP SIGNATURE-----
+
+iQKTBAEBCgB9FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAl663tZfFIAAAAAALgAo
+aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZD
+MEU4NzhBRTVBRkU3ODgwMjhENjM1NUQzOTc5MkY0OUVBN0U1QzIACgkQ05eS9J6n
+5cIXkQ/7Bd9xjLiBJI3yG/8iCaAsQcqLPAvxS4cwtBTvzcOTs9iDs71YbiVy0IcU
+ffcorkOmlwMKPSlDmgZPNxW9l8k1eOrBp2m+8UVZ0bUxA/Vp2fv9Er0A7RPoZO17
+o8fqvTFc3OPuF4LAQ+cC/lH2yiB/F/m6qqph6GisQWUARH1CLvf2FwQFbgBJ5HMN
+jqiL71M3TTnoM9ZwKWelsaOLa2eGDb1zUJ/JcM33uBQ5WTMO7zcN0yxmD0i0dCrJ
+4ZeewKijLWEjJucsqflSEJhc4fo01SRkii66O0r7VLff7gqiCMbieWNr1BF578l5
+fT36r/C06YlivbNErRrZ13LOP5uLre7t4z0cg7fwkRNYfbA7f5o9YRQIp1t7QXN3
+E/6DOr7r5YTfdM6pd7gm5CDprIjZuQcc4hvBXg2FeM9dkZnoVnAKSU9zfNk8N5ly
++YrF3Sl/b/jGI0CI5AuYNzDH3lZf2tdicO9kM8qp8f8IkchAxLrZ4sZmoPqrX8O1
+n5a/e9bgfPAMMJO3PZFbI3haS0wsdkFFuDvrI/raaC/gbBVDwQ25YvKa+OP/Oej7
+H3ao1MPs0Y1FnO/104aVDbNMrDrbDPQnTrwUdF5+DVa1Y9FuBhr8QStsT8oH6il1
+tBKDVjEGb0aT8tF3T+x0Ugaow0pr05MnfipwZe6xUhfpvXEaLU0=
+=LGyL
+-----END PGP SIGNATURE-----
diff --git a/share/security/advisories/FreeBSD-EN-20:10.build.asc b/share/security/advisories/FreeBSD-EN-20:10.build.asc
new file mode 100644
index 0000000000..36ae4360e2
--- /dev/null
+++ b/share/security/advisories/FreeBSD-EN-20:10.build.asc
@@ -0,0 +1,138 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA512
+
+=============================================================================
+FreeBSD-EN-20:10.build Errata Notice
+ The FreeBSD Project
+
+Topic: Incorrect build host Clang version detection
+
+Category: core
+Module: build
+Announced: 2020-05-12
+Affects: All supported versions of FreeBSD
+Corrected: 2020-02-18 18:03:04 UTC (stable/12, 12.1-STABLE)
+ 2020-04-29 18:51:34 UTC (releng/12.1, 12.1-RELEASE-p5)
+ 2020-02-18 18:03:04 UTC (stable/11, 11.3-STABLE)
+ 2020-04-29 18:59:37 UTC (releng/11.3, 11.3-RELEASE-p9)
+
+Note: The upcoming release of FreeBSD 11.4 was branched after the original
+commit to the stable branch and already includes this errata.
+
+For general information regarding FreeBSD Errata Notices and Security
+Advisories, including descriptions of the fields above, security
+branches, and the following sections, please visit
+.
+
+I. Background
+
+FreeBSD's build system detects the host compiler version and uses that to
+control certain actions during the build.
+
+II. Problem Description
+
+The Clang and LLD version detection accepted only versions matching the shell
+glob pattern [1-9].[0-9]*, which notably does not include 10.0. The build
+then proceeded as if the compiler or linker version was 0.0.
+
+III. Impact
+
+Attempting to build 12.1-RELEASE on 13-CURRENT failed. The version detection
+issue also affects 11.3-RELEASE (although the build does not fail).
+
+This issue only affects attempts to build FreeBSD 12.1 or 11.3 on a -CURRENT
+host.
+
+IV. Workaround
+
+Install 11.3-RELEASE or 12.1-RELEASE on the build host. No action is
+required when building 11.3 on an 11.3 host, or 12.1 on a 12.1 host.
+
+V. Solution
+
+Upgrade your system to a supported FreeBSD stable or release / security
+branch (releng) dated after the correction date.
+
+Perform one of the following:
+
+1) To update your system via a binary patch:
+
+Systems running a RELEASE version of FreeBSD on the i386 or amd64
+platforms can be updated via the freebsd-update(8) utility:
+
+# freebsd-update fetch
+# freebsd-update install
+
+2) To update your system via a source code patch:
+
+The following patches have been verified to apply to the applicable
+FreeBSD release branches.
+
+a) Download the relevant patch from the location below, and verify the
+detached PGP signature using your PGP utility.
+
+[FreeBSD 12.1]
+# fetch https://security.FreeBSD.org/patches/EN-20:10/build.12.patch
+# fetch https://security.FreeBSD.org/patches/EN-20:10/build.12.patch.asc
+# gpg --verify build.12.patch.asc
+
+[FreeBSD 11.3]
+# fetch https://security.FreeBSD.org/patches/EN-20:10/build.11.patch
+# fetch https://security.FreeBSD.org/patches/EN-20:10/build.11.patch.asc
+# gpg --verify build.11.patch.asc
+
+b) Apply the patch. Execute the following commands as root:
+
+# cd /usr/src
+# patch < /path/to/patch
+
+c) Recompile the operating system using buildworld and installworld as
+described in .
+
+VI. Correction details
+
+The following list contains the correction revision numbers for each
+affected branch.
+
+Branch/path Revision
+- -------------------------------------------------------------------------
+stable/12/ r358076
+releng/12.1/ r360473
+stable/11/ r358076
+releng/11.3/ r360474
+- -------------------------------------------------------------------------
+
+To see which files were modified by a particular revision, run the
+following command, replacing NNNNNN with the revision number, on a
+machine with Subversion installed:
+
+# svn diff -cNNNNNN --summarize svn://svn.freebsd.org/base
+
+Or visit the following URL, replacing NNNNNN with the revision number:
+
+
+
+VII. References
+
+
+
+The latest revision of this advisory is available at
+
+-----BEGIN PGP SIGNATURE-----
+
+iQKTBAEBCgB9FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAl663tZfFIAAAAAALgAo
+aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZD
+MEU4NzhBRTVBRkU3ODgwMjhENjM1NUQzOTc5MkY0OUVBN0U1QzIACgkQ05eS9J6n
+5cIpBQ//Z3C6D2fP/MifBXt4ueGydxnImlZ3nh8J363j45Yla2SrG1ojLS3ld47a
+sz6mpMKOfXGtxd/oV64rnx+87ZiMygTTGnzQHclE3FZzYm2WmeMmXcyznq0ap0tt
+OJltwJY3KM/7znhJs+dRGIWVrHWStcT0oDmJzSE4u8+zZp4+psFSeBvJlWmZUgUt
+iIWQMrYUh6s6zGFpjL+6Qy3qDReVXB/+Lc/Wo1RNxff+7VOhYhzDIBr3JooIFy1C
+TG3AqtW2PC59B4cZHWUUVxnRyBAuyvlPxf+yWa7JRP/06m0YJlzWNpoKkvkdo4+x
+gG7ulHZU35QLc/NJVX+osTGaGJ7j3pmh1O0npPWbdmsXsR9ugMIZ6rv7+zxq0EX7
+C/7d3fpLw4UcOGbHEI2mZH266IOt/5PaADXjcRO0d/EZRU5zeArWP0vbKF1Hmjg+
+0rdNTv5rPxAVqGSzxC/dpaXCUCGbw0oZz2V6YDL/cxtHdqZwcuNx7nARpWh4H1tE
+0XG3McL8WejJELUb1KtyKrLNQRJ9QzM6tkvTupZcD/7ztL3cVL4tm5Gnfuo/Ui+i
+VcilDPJnm1aT6r3b5Yzz15VkvAP6bf924lXrJZP19pJMXv90wmKsHUzqgIRG9DsB
+iWLVJND9lALxcrW4ZBD+KmIOYukDrzNZJQBM8NzLiaRGgJDFCHg=
+=///S
+-----END PGP SIGNATURE-----
diff --git a/share/security/advisories/FreeBSD-SA-20:12.libalias.asc b/share/security/advisories/FreeBSD-SA-20:12.libalias.asc
new file mode 100644
index 0000000000..6855001093
--- /dev/null
+++ b/share/security/advisories/FreeBSD-SA-20:12.libalias.asc
@@ -0,0 +1,146 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA512
+
+=============================================================================
+FreeBSD-SA-20:12.libalias Security Advisory
+ The FreeBSD Project
+
+Topic: Insufficient packet length validation in libalias
+
+Category: core
+Module: libalias
+Announced: 2020-05-12
+Credits: Lucas Leong (@_wmliang_) of Trend Micro Zero Day Initiative
+ Vishnu working with Trend Micro Zero Day Initiative
+Affects: All supported versions of FreeBSD.
+Corrected: 2020-05-12 16:49:04 UTC (stable/12, 12.1-STABLE)
+ 2020-05-12 16:51:11 UTC (releng/12.1, 12.1-RELEASE-p5)
+ 2020-05-12 16:49:04 UTC (stable/11, 11.4-STABLE)
+ 2020-05-12 16:51:11 UTC (releng/11.4, 11.4-BETA1-p1)
+ 2020-05-12 16:51:11 UTC (releng/11.3, 11.3-RELEASE-p9)
+CVE Name: CVE-2020-7454
+
+For general information regarding FreeBSD Security Advisories,
+including descriptions of the fields above, security branches, and the
+following sections, please visit .
+
+I. Background
+
+The ipfw(4) system facility allows IP packet filtering, redirecting, and
+traffic accounting. The ipfw(4) packet filter also contains two different
+methods of accomplishing network address translation (NAT): in-kernel and
+userspace. Both implementations use the same functions provided by libalias.
+
+The libalias(3) library is a collection of functions for aliasing and
+dealiasing of IP packets, intended for masquerading and NAT. Additionally,
+libalias(3) includes modules to support protocols that require additional
+logic to support address translation.
+
+Note: libalias(3) is not used by either the pf(4) or ipf(4) firewalls.
+
+II. Problem Description
+
+libalias(3) packet handlers do not properly validate the packet length before
+accessing the protocol headers. As a result, if a libalias(3) module does
+not properly validate the packet length before accessing the protocol header,
+it is possible for an out of bound read or write condition to occur.
+
+III. Impact
+
+A malicious attacker could send specially constructed packets that exploit
+the lack of validation allowing the attacker to read or write memory either
+from the kernel (for the in-kernel NAT implementation) or from the process
+space for natd (for the userspace implementation).
+
+IV. Workaround
+
+No workaround is available. Only systems using NAT and ipfw together are
+affected. Systems using ipfw(4) without NAT, or systems leveraging pf(4) or
+ipf(4) are not affected.
+
+V. Solution
+
+Upgrade your vulnerable system to a supported FreeBSD stable or
+release / security branch (releng) dated after the correction date,
+and reboot.
+
+Perform one of the following:
+
+1) To update your vulnerable system via a binary patch:
+
+Systems running a RELEASE version of FreeBSD on the i386 or amd64
+platforms can be updated via the freebsd-update(8) utility:
+
+# freebsd-update fetch
+# freebsd-update install
+# shutdown -r +10min "Rebooting for a security update"
+
+2) To update your vulnerable system via a source code patch:
+
+The following patches have been verified to apply to the applicable
+FreeBSD release branches.
+
+a) Download the relevant patch from the location below, and verify the
+detached PGP signature using your PGP utility.
+
+# fetch https://security.FreeBSD.org/patches/SA-20:12/libalias.patch
+# fetch https://security.FreeBSD.org/patches/SA-20:12/libalias.patch.asc
+# gpg --verify libalias.patch.asc
+
+b) Apply the patch. Execute the following commands as root:
+
+# cd /usr/src
+# patch < /path/to/patch
+
+c) Recompile your kernel as described in
+ and reboot the
+system.
+
+VI. Correction details
+
+The following list contains the correction revision numbers for each
+affected branch.
+
+Branch/path Revision
+- -------------------------------------------------------------------------
+stable/12/ r360971
+releng/12.1/ r360972
+stable/11/ r360971
+releng/11.4/ r360972
+releng/11.3/ r360972
+- -------------------------------------------------------------------------
+
+To see which files were modified by a particular revision, run the
+following command, replacing NNNNNN with the revision number, on a
+machine with Subversion installed:
+
+# svn diff -cNNNNNN --summarize svn://svn.freebsd.org/base
+
+Or visit the following URL, replacing NNNNNN with the revision number:
+
+
+
+VII. References
+
+
+
+The latest revision of this advisory is available at
+
+-----BEGIN PGP SIGNATURE-----
+
+iQKTBAEBCgB9FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAl663tdfFIAAAAAALgAo
+aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZD
+MEU4NzhBRTVBRkU3ODgwMjhENjM1NUQzOTc5MkY0OUVBN0U1QzIACgkQ05eS9J6n
+5cK1Iw/7BpU400GeYsWt6xd+tUuBqGGB6a28+4G/e2GkqMF83vwAaf9+M4siM4Md
+t0RUDLhcC3irLtGehLcXmVdWZUakmacGa3pGza3E8qdCSQC6+VdO4ghzk5fRlVf0
+jmcvCi7zml0YhmATkfMBscPeOJmvENUpouVIwzn4CXMwCKMofjKXdW8+tiT6ppsD
+RVVeUrGdslVo40KZ8wqxx4y2IMKZ7qW/UZnqWQFAAD3d3iQBJXORpy1xn0AZStY2
+ddnhkKdBOyKs5JLoJfSwP8vyTi4iMXPFILP1spuTAqxEFBRTZ3rTE81jimznhp5N
+/OXI92khj6deiTc1kun+ef3n89e1w6KO4Dt1LUNL08N4mpEwLwvBGLS/5v/3KVpm
+Q6XknASLY4RaWdj1D5zbPY6F+JFUv22la5mdia4Gn1zxjsyZNMGgM6nx8OCZn4qg
+JTr7RT4f+EubkEwYD1sw60iTYsqM3o1gFUzkFdEAotWU4tl3nxRkUwusikX7Uu7e
+2QY46Sg/6NxW+oelx1qDGjMlP2CIlEsEqj4ND3eJzJT6nef1xmmTUUu+kQF4TBtX
+J7XqmuTzST2ySPhBUEIOKbjmzdbe+zpbraADhq5BS3zKKmcVSqmqJxkXPxzCwIwb
+uMcg2spQ5fzP/BquOGdQSx0rD3dQ5lTNX6QZyDaKHZR78ZAEiVE=
+=I9Vz
+-----END PGP SIGNATURE-----
diff --git a/share/security/advisories/FreeBSD-SA-20:13.libalias.asc b/share/security/advisories/FreeBSD-SA-20:13.libalias.asc
new file mode 100644
index 0000000000..6b169ec5cf
--- /dev/null
+++ b/share/security/advisories/FreeBSD-SA-20:13.libalias.asc
@@ -0,0 +1,145 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA512
+
+=============================================================================
+FreeBSD-SA-20:13.libalias Security Advisory
+ The FreeBSD Project
+
+Topic: Memory disclosure vulnerability in libalias
+
+Category: core
+Module: libalias
+Announced: 2020-05-12
+Credits: Vishnu Dev TJ working with Trend Micro Zero Day Initiative
+Affects: All supported versions of FreeBSD
+Corrected: 2020-05-12 16:52:08 UTC (stable/12, 12.1-STABLE)
+ 2020-05-12 16:54:39 UTC (releng/12.1, 12.1-RELEASE-p5)
+ 2020-05-12 16:52:08 UTC (stable/11, 11.4-STABLE)
+ 2020-05-12 16:54:39 UTC (releng/11.4, 11.4-BETA1-p1)
+ 2020-05-12 16:54:39 UTC (releng/11.3, 11.3-RELEASE-p9)
+CVE Name: CVE-2020-7455
+
+For general information regarding FreeBSD Security Advisories,
+including descriptions of the fields above, security branches, and the
+following sections, please visit .
+
+I. Background
+
+The ipfw(4) system facility allows IP packet filtering, redirecting, and
+traffic accounting. The ipfw(4) packet filter also contains two different
+methods of accomplishing network address translation (NAT): in-kernel and
+userspace. Both implementations use the same functions provided by libalias.
+
+The libalias(3) library is a collection of functions for aliasing and
+dealiasing of IP packets, intended for masquerading and NAT. Additionally,
+libalias(3) includes modules to support protocols that require additional
+logic to support address translation.
+
+Note: libalias(3) is not used by either the pf(4) or ipf(4) firewalls.
+
+II. Problem Description
+
+The FTP packet handler in libalias incorrectly calculates some packet
+lengths. This may result in disclosing small amounts of memory from the
+kernel (for the in-kernel NAT implementation) or from the process space for
+natd (for the userspace implementation).
+
+III. Impact
+
+A malicious attacker could send specially constructed packets that exploit the
+erroneous calculation allowing the attacker to disclose small amount of memory
+either from the kernel (for the in-kernel NAT implementation) or from the
+process space for natd (for the userspace implementation).
+
+IV. Workaround
+
+No workaround is available. Only systems using NAT and ipfw together are
+affected. Systems using ipfw without NAT, or systems leveraging pf(4) or
+ipf(4) are not affected.
+
+V. Solution
+
+Upgrade your vulnerable system to a supported FreeBSD stable or
+release / security branch (releng) dated after the correction date,
+and reboot.
+
+Perform one of the following:
+
+1) To update your vulnerable system via a binary patch:
+
+Systems running a RELEASE version of FreeBSD on the i386 or amd64
+platforms can be updated via the freebsd-update(8) utility:
+
+# freebsd-update fetch
+# freebsd-update install
+# shutdown -r +10min "Rebooting for a security update"
+
+2) To update your vulnerable system via a source code patch:
+
+The following patches have been verified to apply to the applicable
+FreeBSD release branches.
+
+a) Download the relevant patch from the location below, and verify the
+detached PGP signature using your PGP utility.
+
+# fetch https://security.FreeBSD.org/patches/SA-20:13/libalias.patch
+# fetch https://security.FreeBSD.org/patches/SA-20:13/libalias.patch.asc
+# gpg --verify libalias.patch.asc
+
+b) Apply the patch. Execute the following commands as root:
+
+# cd /usr/src
+# patch < /path/to/patch
+
+c) Recompile your kernel as described in
+ and reboot the
+system.
+
+VI. Correction details
+
+The following list contains the correction revision numbers for each
+affected branch.
+
+Branch/path Revision
+- -------------------------------------------------------------------------
+stable/12/ r360973
+releng/12.1/ r360974
+stable/11/ r360973
+releng/11.4/ r360974
+releng/11.3/ r360974
+- -------------------------------------------------------------------------
+
+To see which files were modified by a particular revision, run the
+following command, replacing NNNNNN with the revision number, on a
+machine with Subversion installed:
+
+# svn diff -cNNNNNN --summarize svn://svn.freebsd.org/base
+
+Or visit the following URL, replacing NNNNNN with the revision number:
+
+
+
+VII. References
+
+
+
+The latest revision of this advisory is available at
+
+-----BEGIN PGP SIGNATURE-----
+
+iQKTBAEBCgB9FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAl663tdfFIAAAAAALgAo
+aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZD
+MEU4NzhBRTVBRkU3ODgwMjhENjM1NUQzOTc5MkY0OUVBN0U1QzIACgkQ05eS9J6n
+5cK3hhAAlkHMjDluGni1AaDicw5jZuyrdGLEMfgH2OdxcrTQvrBN6ZEkfLsiFvLV
+KWgUS+rx3GJApz4rZ6DFwsb+DG+kMCwYGevbT5zH5IUwe1HklyMLmjw48z47DVhx
+8tpjCKNb4ttqBzb6RMURoJgo+2NAUQOZLnFGLSGOkquqeW9AhA97ZIGv7TyOPC1p
+rJD/ic1IxTUXniNu4soexsRqVoMqv1nA1DLrN4TTooFVCQTHaBUBxSTFlaAsBXyb
+7L5GIEydZ2429spQACnFGW4RDveOGB/6Jbt2yHEuu+ASOrwl9sRSu79PYijcz28v
+yXjI0zG4A+78qmeCMbGHIySrLjc8XaWgr13Kp4S+40MWQhoGHJ2ZZVdLX010WTvm
+nbGs9NQ60sytxdJn1QRTleiBIKjJiVqNEADfS4DhXa/0HouN3L8dVR/+jPfLMFmT
+/7GZjhdbn4u0a1ZlgUZ62oHoo8NLop49KY4LHtHd7VpJZ8OfK0qkCN0DL4Ep+Wrg
+oZWJL5HGhFOEA4TDYuypJ58yIPsTDVa9MuLMx/SBF30jVZcS1LtbiMXXuZs6clig
+oOk4ZE0hpSRdA69xgX459kcTjU6XVJRnTPWyepG3sNljktwk8jyfwKHXOUpJONos
+0jWu0ngj60djS8qCrxdkMn3t26fk0IhbA4leBEM+wAKmWsARt/M=
+=woOx
+-----END PGP SIGNATURE-----
diff --git a/share/security/advisories/FreeBSD-SA-20:14.sctp.asc b/share/security/advisories/FreeBSD-SA-20:14.sctp.asc
new file mode 100644
index 0000000000..8f3d82f66b
--- /dev/null
+++ b/share/security/advisories/FreeBSD-SA-20:14.sctp.asc
@@ -0,0 +1,138 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA512
+
+=============================================================================
+FreeBSD-SA-20:14.sctp Security Advisory
+ The FreeBSD Project
+
+Topic: Improper checking in SCTP-AUTH shared key update
+
+Category: core
+Module: kernel
+Announced: 2020-05-12
+Credits: da_cheng_shao@yeah.net
+Affects: FreeBSD 11.3
+Corrected: 2019-09-19 10:01:19 UTC (stable/12, 12.1-STABLE)
+ 2019-09-19 10:06:18 UTC (stable/11, 11.3-STABLE)
+ 2020-05-12 16:55:32 UTC (releng/11.3, 11.3-RELEASE-p9)
+CVE Name: CVE-2019-15878
+
+Note: The upcoming release of FreeBSD 11.4 was branched after the original
+commit to the stable branch and already includes the fix for this advisory.
+Similarly, the 12.1 branch was created shortly after the original commit to
+the stable branch and already includes the fix.
+
+For general information regarding FreeBSD Security Advisories,
+including descriptions of the fields above, security branches, and the
+following sections, please visit .
+
+I. Background
+
+The Stream Control Transmission Protocol (SCTP) is a transport protocol
+supporting the socket API. An SCTP packet consists of an SCTP common header
+and a number of SCTP chunks.
+
+The SCTP extension SCTP-AUTH can be used to authenticate SCTP chunks. It
+uses shared keys which can be managed via the socket API by the application
+using an SCTP association.
+
+II. Problem Description
+
+The SCTP layer does improper checking when an application tries to update
+a shared key. Therefore an unprivileged local user can trigger a use-after-
+free situation, for example by specific sequences of updating shared keys and
+closing the SCTP association.
+
+III. Impact
+
+Tiggering the use-after-free situation may result in unintended kernel
+behaviour including a kernel panic.
+
+IV. Workaround
+
+No workaround is available.
+
+V. Solution
+
+Upgrade your vulnerable system to a supported FreeBSD stable or
+release / security branch (releng) dated after the correction date,
+and reboot.
+
+Perform one of the following:
+
+1) To update your vulnerable system via a binary patch:
+
+Systems running a RELEASE version of FreeBSD on the i386 or amd64
+platforms can be updated via the freebsd-update(8) utility:
+
+# freebsd-update fetch
+# freebsd-update install
+# shutdown -r +10min "Rebooting for a security update"
+
+2) To update your vulnerable system via a source code patch:
+
+The following patches have been verified to apply to the applicable
+FreeBSD release branches.
+
+a) Download the relevant patch from the location below, and verify the
+detached PGP signature using your PGP utility.
+
+# fetch https://security.FreeBSD.org/patches/SA-20:14/sctp.patch
+# fetch https://security.FreeBSD.org/patches/SA-20:14/sctp.patch.asc
+# gpg --verify sctp.patch.asc
+
+b) Apply the patch. Execute the following commands as root:
+
+# cd /usr/src
+# patch < /path/to/patch
+
+c) Recompile your kernel as described in
+ and reboot the
+system.
+
+VI. Correction details
+
+The following list contains the correction revision numbers for each
+affected branch.
+
+Branch/path Revision
+- -------------------------------------------------------------------------
+stable/12/ r352509
+stable/11/ r352509
+releng/11.3/ r360975
+- -------------------------------------------------------------------------
+
+To see which files were modified by a particular revision, run the
+following command, replacing NNNNNN with the revision number, on a
+machine with Subversion installed:
+
+# svn diff -cNNNNNN --summarize svn://svn.freebsd.org/base
+
+Or visit the following URL, replacing NNNNNN with the revision number:
+
+
+
+VII. References
+
+
+
+The latest revision of this advisory is available at
+
+-----BEGIN PGP SIGNATURE-----
+
+iQKTBAEBCgB9FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAl663tdfFIAAAAAALgAo
+aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZD
+MEU4NzhBRTVBRkU3ODgwMjhENjM1NUQzOTc5MkY0OUVBN0U1QzIACgkQ05eS9J6n
+5cKMHQ/8C9QgTd37kgGUaKlZ2YpgIWj25acum87au89KvNxID1Kvd9jMOFkfvGOq
+YVEqJ5ZwnOPbqme6FpLI2UDM4E2N1aMxEZcTZspWR5U/4butu4+4yy4dGudn0LQ9
+EYwTag0ocCypB/c8tBh0SfN9KHM6JqCgnWFBlwyedHTjdVCUvAgwcZJEi4ne2D3G
+S7DgVes6x0gifXY897YQJlfEMfJEtdfLe9SMkIzSltjTD9PJhZ7WD5uqHYNGOFOv
+Xh6JNHlAGuFxUpL94Tvr3o8Ptx0oOIo0cMw9fvqZq/Hp48jSEDfMIqhcqbEWmygW
+sJo4NaZkqmA3hYCOqiOYSXFGeaSOYQanBduIA2m5BGjy5vHQBgTabSo9yH/ttrC8
+8vBkGAUOyrC+dH5kguT6Q194BwDWuloKr38oQ2PrVbfCRwHtG8SEk/BC3glPCSdE
+cWj5h4Eh1+z1GadgQ4JllmH5UBY702Vm1PhqZpGRbtRTbEWL84hT+4XCokq4wmQS
+uB2M/Ew77FPBeZxVzE063Zk5/TLOfl2CFywekTX6C8too2YmIqEgl0DX7DYyr+fC
+15t2bNkbfvFyS5iPti2rjOSIZG684i39nnk0YcC396azveQRCvDp6Q6E25jsl0pR
+P4ARjQkw5cY3MBXtdSXMFON35swHTqZnL4gy134pjGyNVR+A0/k=
+=fwNs
+-----END PGP SIGNATURE-----
diff --git a/share/security/advisories/FreeBSD-SA-20:15.cryptodev.asc b/share/security/advisories/FreeBSD-SA-20:15.cryptodev.asc
new file mode 100644
index 0000000000..d4abb0ac8e
--- /dev/null
+++ b/share/security/advisories/FreeBSD-SA-20:15.cryptodev.asc
@@ -0,0 +1,144 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA512
+
+=============================================================================
+FreeBSD-SA-20:15.cryptodev Security Advisory
+ The FreeBSD Project
+
+Topic: Use after free in cryptodev module
+
+Category: core
+Module: cryptodev
+Announced: 2020-05-12
+Credits: Yuval Kanarenstein
+Affects: All supported versions of FreeBSD.
+Corrected: 2020-01-20 11:19:55 UTC (stable/12, 12.1-STABLE)
+ 2020-05-12 16:57:47 UTC (releng/12.1, 12.1-RELEASE-p5)
+ 2020-01-20 11:19:55 UTC (stable/11, 11.3-STABLE)
+ 2020-05-12 16:57:47 UTC (releng/11.3, 11.3-RELEASE-p9)
+CVE Name: CVE-2019-15879
+
+Note: The upcoming release of FreeBSD 11.4 was branched after the original
+commit to the stable branch and already includes the fix for this advisory.
+
+For general information regarding FreeBSD Security Advisories,
+including descriptions of the fields above, security branches, and the
+following sections, please visit .
+
+I. Background
+
+The cryptodev module permits userland applications to offload
+cryptographic requests to device drivers in the kernel. Applications
+create sessions via file descriptors opened from /dev/crypto.
+
+II. Problem Description
+
+A race condition permitted a data structure in the kernel to be used
+after it was freed by the cryptodev module.
+
+III. Impact
+
+An unprivileged process can overwrite arbitrary kernel memory.
+
+IV. Workaround
+
+Unload the cryptodev kernel module if it is loaded:
+
+# kldunload cryptodev
+
+Note that the cryptodev module is not loaded by default and is not
+used by most applications. Specificially, use of accelerated software
+cryptography, such as AES-NI, in userland applications via libraries such
+as OpenSSL do not make use of the cryptodev module.
+
+V. Solution
+
+Upgrade your vulnerable system to a supported FreeBSD stable or
+release / security branch (releng) dated after the correction date, and
+reboot the system.
+
+Perform one of the following:
+
+1) To update your vulnerable system via a binary patch:
+
+Systems running a RELEASE version of FreeBSD on the i386 or amd64
+platforms can be updated via the freebsd-update(8) utility:
+
+# freebsd-update fetch
+# freebsd-update install
+# shutdown -r +10min "Rebooting for a security update"
+
+2) To update your vulnerable system via a source code patch:
+
+The following patches have been verified to apply to the applicable
+FreeBSD release branches.
+
+a) Download the relevant patch from the location below, and verify the
+detached PGP signature using your PGP utility.
+
+[FreeBSD 12.1]
+# fetch https://security.FreeBSD.org/patches/SA-20:15/cryptodev.12.patch
+# fetch https://security.FreeBSD.org/patches/SA-20:15/cryptodev.12.patch.asc
+# gpg --verify cryptodev.12.patch.asc
+
+[FreeBSD 11.3]
+# fetch https://security.FreeBSD.org/patches/SA-20:15/cryptodev.11.patch
+# fetch https://security.FreeBSD.org/patches/SA-20:15/cryptodev.11.patch.asc
+# gpg --verify cryptodev.11.patch.asc
+
+b) Apply the patch. Execute the following commands as root:
+
+# cd /usr/src
+# patch < /path/to/patch
+
+c) Recompile your kernel as described in
+ and reboot the
+system.
+
+VI. Correction details
+
+The following list contains the correction revision numbers for each
+affected branch.
+
+Branch/path Revision
+- -------------------------------------------------------------------------
+stable/12/ r356908
+releng/12.1/ r360976
+stable/11/ r356908
+releng/11.3/ r360976
+- -------------------------------------------------------------------------
+
+To see which files were modified by a particular revision, run the
+following command, replacing NNNNNN with the revision number, on a
+machine with Subversion installed:
+
+# svn diff -cNNNNNN --summarize svn://svn.freebsd.org/base
+
+Or visit the following URL, replacing NNNNNN with the revision number:
+
+
+
+VII. References
+
+
+
+The latest revision of this advisory is available at
+
+-----BEGIN PGP SIGNATURE-----
+
+iQKTBAEBCgB9FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAl663tdfFIAAAAAALgAo
+aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZD
+MEU4NzhBRTVBRkU3ODgwMjhENjM1NUQzOTc5MkY0OUVBN0U1QzIACgkQ05eS9J6n
+5cLW2A//VW8iJqNaBHhMnCrpl+oDTadzGM3gYVxnM+EEQYzru2Ze0z0tShiAkXrQ
+NryjwBpMA3r1nyWDYaWMgbHjcG+jQdsIvoiA+fSU9hXEUbpxwX9ZKlaSZUBDX48X
+YScJMewgHCXNpgkTnIckaIyIadOXX+zWhi5T0LN2tS5M5oejTLndAKo9mQm1Ni50
+PYiHFkLzO7v4H6K0cKuJRuHF8+kU1IhvOinZuXwZXoGqmPGTVsA0+T27dWhosaWv
+Yqh3Pbp5oS1y3NbbOadLPhY146pT2Qrb2mQOEiHvsXMFRgjIEQzH1MYXx5gvpa4K
+CkMwCV/MuNotscVZ00qhVQEGEVlrhgi2IXinzxde5HYCc3mD/KdcYnYz9zOCeIfb
+9RfdvKk8uzUITLyz8ZinZBqIHghnSG3M9/cNj2o/97yRfFJazXF/SI41YoV3hcyE
+Gb1ncYfaAJ4rL9U6xHMw7V+1LSlMrVsIcWxCM2PS4NTwWcZ8K7mEX51ARjx4k7lx
+IBEsJ+ExSfZHNkS6/DLZiuLEQKFxIOKlRyZQTALnzNaNTp763idW7zA+9k8ceBRH
+VO7x3EGNqNPhIss+JHOxDUaXTFfJTcd7XGv291unkZwBJuFhJBfH3S+ZCcF38xVK
+aweHOoJW5V+D9GKygb9oLjOxOupRkFuRrHFQcvj57FYqs9/GDVc=
+=8E1l
+-----END PGP SIGNATURE-----
diff --git a/share/security/advisories/FreeBSD-SA-20:16.cryptodev.asc b/share/security/advisories/FreeBSD-SA-20:16.cryptodev.asc
new file mode 100644
index 0000000000..6e1d8f4fad
--- /dev/null
+++ b/share/security/advisories/FreeBSD-SA-20:16.cryptodev.asc
@@ -0,0 +1,132 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA512
+
+=============================================================================
+FreeBSD-SA-20:16.cryptodev Security Advisory
+ The FreeBSD Project
+
+Topic: Insufficient cryptodev MAC key length check
+
+Category: core
+Module: cryptodev
+Announced: 2020-05-12
+Credits: Yuval Kanarenstein
+Affects: FreeBSD 12.1
+Corrected: 2020-01-20 11:54:00 UTC (stable/12, 12.1-STABLE)
+ 2020-05-12 16:59:09 UTC (releng/12.1, 12.1-RELEASE-p5)
+CVE Name: CVE-2019-15880
+
+For general information regarding FreeBSD Security Advisories,
+including descriptions of the fields above, security branches, and the
+following sections, please visit .
+
+I. Background
+
+The cryptodev module permits userland applications to offload cryptographic
+requests to device drivers in the kernel. Applications create sessions via
+file descriptors opened from /dev/crypto.
+
+II. Problem Description
+
+Requests to create cryptography sessions using a MAC did not validate the
+user-supplied MAC key length. The cryptodev module allocates a buffer whose
+size is this user-suppled length.
+
+III. Impact
+
+An unprivileged process can trigger a kernel panic.
+
+IV. Workaround
+
+Unload the cryptodev kernel module if it is loaded:
+
+# kldunload cryptodev
+
+Note that the cryptodev module is not loaded by default and is not
+used by most applications. Specificially, use of accelerated software
+cryptography (e.g. AES-NI) in userland applications via libraries such
+as OpenSSL does not make use of the cryptodev module.
+
+V. Solution
+
+Upgrade your vulnerable system to a supported FreeBSD stable or
+release / security branch (releng) dated after the correction date, and
+reboot the system.
+
+Perform one of the following:
+
+1) To update your vulnerable system via a binary patch:
+
+Systems running a RELEASE version of FreeBSD on the i386 or amd64
+platforms can be updated via the freebsd-update(8) utility:
+
+# freebsd-update fetch
+# freebsd-update install
+# shutdown -r +10min "Rebooting for a security update"
+
+2) To update your vulnerable system via a source code patch:
+
+The following patches have been verified to apply to the applicable
+FreeBSD release branches.
+
+a) Download the relevant patch from the location below, and verify the
+detached PGP signature using your PGP utility.
+
+# fetch https://security.FreeBSD.org/patches/SA-20:16/cryptodev.patch
+# fetch https://security.FreeBSD.org/patches/SA-20:16/cryptodev.patch.asc
+# gpg --verify cryptodev.patch.asc
+
+b) Apply the patch. Execute the following commands as root:
+
+# cd /usr/src
+# patch < /path/to/patch
+
+c) Recompile your kernel as described in
+ and reboot the
+system.
+
+VI. Correction details
+
+The following list contains the correction revision numbers for each
+affected branch.
+
+Branch/path Revision
+- -------------------------------------------------------------------------
+stable/12/ r356911
+releng/12.1/ r360977
+- -------------------------------------------------------------------------
+
+To see which files were modified by a particular revision, run the
+following command, replacing NNNNNN with the revision number, on a
+machine with Subversion installed:
+
+# svn diff -cNNNNNN --summarize svn://svn.freebsd.org/base
+
+Or visit the following URL, replacing NNNNNN with the revision number:
+
+
+
+VII. References
+
+
+
+The latest revision of this advisory is available at
+
+-----BEGIN PGP SIGNATURE-----
+
+iQKTBAEBCgB9FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAl663tdfFIAAAAAALgAo
+aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZD
+MEU4NzhBRTVBRkU3ODgwMjhENjM1NUQzOTc5MkY0OUVBN0U1QzIACgkQ05eS9J6n
+5cKFbg/+Ou239S9yDp+FTyDlqq4w8p08kh8nHqB6FO6Q6aIxkEgSu/yO9IZsKSnM
+o05O8iOVOTRR5xSIBN/aW5d4adH81AV6X66NKUZ0bJwAp16v7YIyivY3ySLOB093
+oOTy/wlv0jxAYVzOlqMTuVm4dr9dh+9I9kwF94SDY7/maY0pCuUmVCRi2Y5gvCqu
+LYkDdG0Mq0pka1sGY8aFvG63oMyZ98gkbBNk666SzJnBDq/QDSL0FASCgYDjG1fE
+R/BciJpucIFi3JPZgSaKi4j56HiN/LaX63A1rdjza3aRh/sLMr7+GHFI3sn474tu
+xrkRjwnxr7/dghjspHAvsv+8U1oRIGVxeyaQB+Hd4WvNcVzp2McNBJ9c/z7Ugt1r
+affyXl0JBBkdVa45xDf/weGwwxcmCWxXxv7gDPelf07p3MNjl5G3pPUCUoRA3XE5
+Am1v5E0Eui5s/H4ncodY/ECIAHuOfenzdcpK5xCQUMHkgikfiLftNfLWSVOrqEJn
+Wxl8/ttKWLYYwYDSYrN0kNvQWc6LHsuA1I7Zt7wpRW09wB2OlZ7Hn2nZebTrXjKG
+P/AeGa+JVCJ2HZzj1+8qxcFHgq8IRINICvq743e2vIQak0KsgqmtvnLavAlv/p3d
+zPxFJOPAw0bhJj14qLT+cXGC9u3/qrZWWR0b4S7qeMlLG3Cw4fk=
+=j3X1
+-----END PGP SIGNATURE-----
diff --git a/share/security/patches/EN-20:08/tzdata-2020a.patch b/share/security/patches/EN-20:08/tzdata-2020a.patch
new file mode 100644
index 0000000000..acc56b4635
--- /dev/null
+++ b/share/security/patches/EN-20:08/tzdata-2020a.patch
@@ -0,0 +1,1074 @@
+--- contrib/tzdata/Makefile.orig
++++ contrib/tzdata/Makefile
+@@ -150,6 +150,15 @@
+
+ REDO= posix_right
+
++# Whether to put an "Expires" line in the leapseconds file.
++# Use EXPIRES_LINE=1 to put the line in, 0 to omit it.
++# The EXPIRES_LINE value matters only if REDO's value contains "right".
++# If you change EXPIRES_LINE, remove the leapseconds file before running "make".
++# zic's support for the Expires line was introduced in tzdb 2020a,
++# and EXPIRES_LINE defaults to 0 for now so that the leapseconds file
++# can be given to older zic implementations.
++EXPIRES_LINE= 0
++
+ # To install data in text form that has all the information of the TZif data,
+ # (optionally incorporating leap second information), use
+ # TZDATA_TEXT= tzdata.zi leapseconds
+@@ -295,8 +304,9 @@
+ # than TM_GMTOFF and TM_ZONE. However, most of them are standardized.
+ # #
+ # # To omit or support the external variable "tzname", add one of:
+-# # -DHAVE_TZNAME=0
+-# # -DHAVE_TZNAME=1
++# # -DHAVE_TZNAME=0 # do not support "tzname"
++# # -DHAVE_TZNAME=1 # support "tzname", which is defined by system library
++# # -DHAVE_TZNAME=2 # support and define "tzname"
+ # # to the "CFLAGS=" line. "tzname" is required by POSIX 1988 and later.
+ # # If not defined, the code attempts to guess HAVE_TZNAME from other macros.
+ # # Warning: unless time_tz is also defined, HAVE_TZNAME=1 can cause
+@@ -304,16 +314,20 @@
+ # # presumably due to memory allocation issues.
+ # #
+ # # To omit or support the external variables "timezone" and "daylight", add
+-# # -DUSG_COMPAT=0
+-# # -DUSG_COMPAT=1
++# # -DUSG_COMPAT=0 # do not support
++# # -DUSG_COMPAT=1 # support, and variables are defined by system library
++# # -DUSG_COMPAT=2 # support and define variables
+ # # to the "CFLAGS=" line; "timezone" and "daylight" are inspired by
+ # # Unix Systems Group code and are required by POSIX 2008 (with XSI) and later.
+ # # If not defined, the code attempts to guess USG_COMPAT from other macros.
+ # #
+ # # To support the external variable "altzone", add
+-# # -DALTZONE
++# # -DALTZONE=0 # do not support
++# # -DALTZONE=1 # support "altzone", which is defined by system library
++# # -DALTZONE=2 # support and define "altzone"
+ # # to the end of the "CFLAGS=" line; although "altzone" appeared in
+ # # System V Release 3.1 it has not been standardized.
++# # If not defined, the code attempts to guess ALTZONE from other macros.
+ #
+ # If you want functions that were inspired by early versions of X3J11's work,
+ # add
+@@ -321,9 +335,7 @@
+ # to the end of the "CFLAGS=" line. This arranges for the functions
+ # "tzsetwall", "offtime", "timelocal", "timegm", "timeoff",
+ # "posix2time", and "time2posix" to be added to the time conversion library.
+-# "tzsetwall" is like "tzset" except that it arranges for local wall clock
+-# time (rather than the timezone specified in the TZ environment variable)
+-# to be used.
++# "tzsetwall" is deprecated and is intended to be removed soon; see NEWS.
+ # "offtime" is like "gmtime" except that it accepts a second (long) argument
+ # that gives an offset to add to the time_t when converting it.
+ # "timelocal" is equivalent to "mktime".
+@@ -333,7 +345,6 @@
+ # that gives an offset to use when converting to a time_t.
+ # "posix2time" and "time2posix" are described in an included manual page.
+ # X3J11's work does not describe any of these functions.
+-# Sun has provided "tzsetwall", "timelocal", and "timegm" in SunOS 4.0.
+ # These functions may well disappear in future releases of the time
+ # conversion package.
+ #
+@@ -505,11 +516,11 @@
+ TZCOBJS= zic.o
+ TZDOBJS= zdump.o localtime.o asctime.o strftime.o
+ DATEOBJS= date.o localtime.o strftime.o asctime.o
+-LIBSRCS= localtime.c asctime.c difftime.c
+-LIBOBJS= localtime.o asctime.o difftime.o
++LIBSRCS= localtime.c asctime.c difftime.c strftime.c
++LIBOBJS= localtime.o asctime.o difftime.o strftime.o
+ HEADERS= tzfile.h private.h
+ NONLIBSRCS= zic.c zdump.c
+-NEWUCBSRCS= date.c strftime.c
++NEWUCBSRCS= date.c
+ SOURCES= $(HEADERS) $(LIBSRCS) $(NONLIBSRCS) $(NEWUCBSRCS) \
+ tzselect.ksh workman.sh
+ MANS= newctime.3 newstrftime.3 newtzset.3 time2posix.3 \
+@@ -651,7 +662,8 @@
+ chmod +x yearistype
+
+ leapseconds: $(LEAP_DEPS)
+- $(AWK) -f leapseconds.awk leap-seconds.list >$@.out
++ $(AWK) -v EXPIRES_LINE=$(EXPIRES_LINE) \
++ -f leapseconds.awk leap-seconds.list >$@.out
+ mv $@.out $@
+
+ # Arguments to pass to submakes of install_data.
+--- contrib/tzdata/NEWS.orig
++++ contrib/tzdata/NEWS
+@@ -1,5 +1,87 @@
+ News for the tz database
+
++Release 2020a - 2020-04-23 16:03:47 -0700
++
++ Briefly:
++ Morocco springs forward on 2020-05-31, not 2020-05-24.
++ Canada's Yukon advanced to -07 year-round on 2020-03-08.
++ America/Nuuk renamed from America/Godthab.
++ zic now supports expiration dates for leap second lists.
++
++ Changes to future timestamps
++
++ Morocco's second spring-forward transition in 2020 will be May 31,
++ not May 24 as predicted earlier. (Thanks to Semlali Naoufal.)
++ Adjust future-year predictions to use the first Sunday after the
++ day after Ramadan, not the first Sunday after Ramadan.
++
++ Canada's Yukon, represented by America/Whitehorse and
++ America/Dawson, advanced to -07 year-round, beginning with its
++ spring-forward transition on 2020-03-08, and will not fall back on
++ 2020-11-01. Although a government press release calls this
++ "permanent Pacific Daylight Saving Time", we prefer MST for
++ consistency with nearby Dawson Creek, Creston, and Fort Nelson.
++ (Thanks to Tim Parenti.)
++
++ Changes to past timestamps
++
++ Shanghai observed DST in 1919. (Thanks to Phake Nick.)
++
++ Changes to timezone identifiers
++
++ To reflect current usage in English better, America/Godthab has
++ been renamed to America/Nuuk. A backwards-compatibility link
++ remains for the old name.
++
++ Changes to code
++
++ localtime.c no longer mishandles timestamps after the last
++ transition in a TZif file with leap seconds and with daylight
++ saving time transitions projected into the indefinite future.
++ For example, with TZ='America/Los_Angeles' with leap seconds,
++ zdump formerly reported a DST transition on 2038-03-14
++ from 01:59:32.999... to 02:59:33 instead of the correct transition
++ from 01:59:59.999... to 03:00:00.
++
++ zic -L now supports an Expires line in the leapseconds file, and
++ truncates the TZif output accordingly. This propagates leap
++ second expiration information into the TZif file, and avoids the
++ abovementioned localtime.c bug as well as similar bugs present in
++ many client implementations. If no Expires line is present, zic
++ -L instead truncates the TZif output based on the #expires comment
++ present in leapseconds files distributed by tzdb 2018f and later;
++ however, this usage is obsolescent. For now, the distributed
++ leapseconds file has an Expires line that is commented out, so
++ that the file can be fed to older versions of zic which ignore the
++ commented-out line. Future tzdb distributions are planned to
++ contain a leapseconds file with an Expires line.
++
++ The configuration macros HAVE_TZNAME and USG_COMPAT should now be
++ set to 1 if the system library supports the feature, and 2 if not.
++ As before, these macros are nonzero if tzcode should support the
++ feature, zero otherwise.
++
++ The configuration macro ALTZONE now has the same values with the
++ same meaning as HAVE_TZNAME and USG_COMPAT.
++
++ The code's defense against CRLF in leap-seconds.list is now
++ portable to POSIX awk. (Problem reported by Deborah Goldsmith.)
++
++ Although the undocumented tzsetwall function is not changed in
++ this release, it is now deprecated in preparation for removal in
++ future releases. Due to POSIX requirements, tzsetwall has not
++ worked for some time. Any code that uses it should instead use
++ tzalloc(NULL) or, if portability trumps thread-safety, should
++ unset the TZ environment variable.
++
++ Changes to commentary
++
++ The Îles-de-la-Madeleine and the Listuguj reserve are noted as
++ following America/Halifax, and comments about Yukon's "south" and
++ "north" have been corrected to say "east" and "west". (Thanks to
++ Jeffery Nichols.)
++
++
+ Release 2019c - 2019-09-11 08:59:48 -0700
+
+ Briefly:
+--- contrib/tzdata/africa.orig
++++ contrib/tzdata/africa
+@@ -867,19 +867,25 @@
+ # Morocco will be on GMT starting from Sunday, May 5th 2019 at 3am.
+ # The switch to GMT+1 will occur on Sunday, June 9th 2019 at 2am....
+ # http://fr.le360.ma/societe/voici-la-date-du-retour-a-lheure-legale-au-maroc-188222
++
++# From Semlali Naoufal (2020-04-14):
++# Following the announcement by the Moroccan government, the switch to
++# GMT time will take place on Sunday, April 19, 2020 from 3 a.m. and
++# the return to GMT+1 time will take place on Sunday, May 31, 2020 at 2 a.m....
++# https://maroc-diplomatique.net/maroc-le-retour-a-lheure-gmt-est-prevu-dimanche-prochain/
++# http://aujourdhui.ma/actualite/gmt1-retour-a-lheure-normale-dimanche-prochain-1
+ #
+-# From Paul Eggert (2019-05-20):
+-# This agrees with our 2018-11-01 guess that the Moroccan government
+-# would continue the practice of falling back at 03:00 the last Sunday
+-# before Ramadan, and of springing forward at 02:00 the first Sunday after
+-# Ramadan, as this has been the practice since 2012. To implement this,
+-# transition dates for 2019 through 2087 were determined by running the
+-# following program under GNU Emacs 26.2.
+-# (let ((islamic-year 1440))
++# From Paul Eggert (2020-04-14):
++# For now, guess that in the future Morocco will fall back at 03:00
++# the last Sunday before Ramadan, and spring forward at 02:00 the
++# first Sunday after the day after Ramadan. To implement this,
++# transition dates for 2021 through 2087 were determined by running
++# the following program under GNU Emacs 26.3.
++# (let ((islamic-year 1442))
+ # (require 'cal-islam)
+ # (while (< islamic-year 1511)
+ # (let ((a (calendar-islamic-to-absolute (list 9 1 islamic-year)))
+-# (b (calendar-islamic-to-absolute (list 10 1 islamic-year)))
++# (b (1+ (calendar-islamic-to-absolute (list 10 1 islamic-year))))
+ # (sunday 0))
+ # (while (/= sunday (mod (setq a (1- a)) 7)))
+ # (while (/= sunday (mod b 7))
+@@ -939,7 +945,7 @@
+ Rule Morocco 2019 only - May 5 3:00 -1:00 -
+ Rule Morocco 2019 only - Jun 9 2:00 0 -
+ Rule Morocco 2020 only - Apr 19 3:00 -1:00 -
+-Rule Morocco 2020 only - May 24 2:00 0 -
++Rule Morocco 2020 only - May 31 2:00 0 -
+ Rule Morocco 2021 only - Apr 11 3:00 -1:00 -
+ Rule Morocco 2021 only - May 16 2:00 0 -
+ Rule Morocco 2022 only - Mar 27 3:00 -1:00 -
+@@ -955,7 +961,7 @@
+ Rule Morocco 2027 only - Feb 7 3:00 -1:00 -
+ Rule Morocco 2027 only - Mar 14 2:00 0 -
+ Rule Morocco 2028 only - Jan 23 3:00 -1:00 -
+-Rule Morocco 2028 only - Feb 27 2:00 0 -
++Rule Morocco 2028 only - Mar 5 2:00 0 -
+ Rule Morocco 2029 only - Jan 14 3:00 -1:00 -
+ Rule Morocco 2029 only - Feb 18 2:00 0 -
+ Rule Morocco 2029 only - Dec 30 3:00 -1:00 -
+@@ -971,7 +977,7 @@
+ Rule Morocco 2034 only - Nov 5 3:00 -1:00 -
+ Rule Morocco 2034 only - Dec 17 2:00 0 -
+ Rule Morocco 2035 only - Oct 28 3:00 -1:00 -
+-Rule Morocco 2035 only - Dec 2 2:00 0 -
++Rule Morocco 2035 only - Dec 9 2:00 0 -
+ Rule Morocco 2036 only - Oct 19 3:00 -1:00 -
+ Rule Morocco 2036 only - Nov 23 2:00 0 -
+ Rule Morocco 2037 only - Oct 4 3:00 -1:00 -
+@@ -987,7 +993,7 @@
+ Rule Morocco 2042 only - Aug 10 3:00 -1:00 -
+ Rule Morocco 2042 only - Sep 21 2:00 0 -
+ Rule Morocco 2043 only - Aug 2 3:00 -1:00 -
+-Rule Morocco 2043 only - Sep 6 2:00 0 -
++Rule Morocco 2043 only - Sep 13 2:00 0 -
+ Rule Morocco 2044 only - Jul 24 3:00 -1:00 -
+ Rule Morocco 2044 only - Aug 28 2:00 0 -
+ Rule Morocco 2045 only - Jul 9 3:00 -1:00 -
+@@ -1003,7 +1009,7 @@
+ Rule Morocco 2050 only - May 15 3:00 -1:00 -
+ Rule Morocco 2050 only - Jun 26 2:00 0 -
+ Rule Morocco 2051 only - May 7 3:00 -1:00 -
+-Rule Morocco 2051 only - Jun 11 2:00 0 -
++Rule Morocco 2051 only - Jun 18 2:00 0 -
+ Rule Morocco 2052 only - Apr 28 3:00 -1:00 -
+ Rule Morocco 2052 only - Jun 2 2:00 0 -
+ Rule Morocco 2053 only - Apr 13 3:00 -1:00 -
+@@ -1019,7 +1025,7 @@
+ Rule Morocco 2058 only - Feb 17 3:00 -1:00 -
+ Rule Morocco 2058 only - Mar 31 2:00 0 -
+ Rule Morocco 2059 only - Feb 9 3:00 -1:00 -
+-Rule Morocco 2059 only - Mar 16 2:00 0 -
++Rule Morocco 2059 only - Mar 23 2:00 0 -
+ Rule Morocco 2060 only - Feb 1 3:00 -1:00 -
+ Rule Morocco 2060 only - Mar 7 2:00 0 -
+ Rule Morocco 2061 only - Jan 16 3:00 -1:00 -
+@@ -1029,13 +1035,13 @@
+ Rule Morocco 2062 only - Dec 31 3:00 -1:00 -
+ Rule Morocco 2063 only - Feb 4 2:00 0 -
+ Rule Morocco 2063 only - Dec 16 3:00 -1:00 -
+-Rule Morocco 2064 only - Jan 20 2:00 0 -
++Rule Morocco 2064 only - Jan 27 2:00 0 -
+ Rule Morocco 2064 only - Dec 7 3:00 -1:00 -
+ Rule Morocco 2065 only - Jan 11 2:00 0 -
+ Rule Morocco 2065 only - Nov 22 3:00 -1:00 -
+ Rule Morocco 2066 only - Jan 3 2:00 0 -
+ Rule Morocco 2066 only - Nov 14 3:00 -1:00 -
+-Rule Morocco 2066 only - Dec 19 2:00 0 -
++Rule Morocco 2066 only - Dec 26 2:00 0 -
+ Rule Morocco 2067 only - Nov 6 3:00 -1:00 -
+ Rule Morocco 2067 only - Dec 11 2:00 0 -
+ Rule Morocco 2068 only - Oct 21 3:00 -1:00 -
+@@ -1045,13 +1051,13 @@
+ Rule Morocco 2070 only - Oct 5 3:00 -1:00 -
+ Rule Morocco 2070 only - Nov 9 2:00 0 -
+ Rule Morocco 2071 only - Sep 20 3:00 -1:00 -
+-Rule Morocco 2071 only - Oct 25 2:00 0 -
++Rule Morocco 2071 only - Nov 1 2:00 0 -
+ Rule Morocco 2072 only - Sep 11 3:00 -1:00 -
+ Rule Morocco 2072 only - Oct 16 2:00 0 -
+ Rule Morocco 2073 only - Aug 27 3:00 -1:00 -
+ Rule Morocco 2073 only - Oct 8 2:00 0 -
+ Rule Morocco 2074 only - Aug 19 3:00 -1:00 -
+-Rule Morocco 2074 only - Sep 23 2:00 0 -
++Rule Morocco 2074 only - Sep 30 2:00 0 -
+ Rule Morocco 2075 only - Aug 11 3:00 -1:00 -
+ Rule Morocco 2075 only - Sep 15 2:00 0 -
+ Rule Morocco 2076 only - Jul 26 3:00 -1:00 -
+@@ -1061,7 +1067,7 @@
+ Rule Morocco 2078 only - Jul 10 3:00 -1:00 -
+ Rule Morocco 2078 only - Aug 14 2:00 0 -
+ Rule Morocco 2079 only - Jun 25 3:00 -1:00 -
+-Rule Morocco 2079 only - Jul 30 2:00 0 -
++Rule Morocco 2079 only - Aug 6 2:00 0 -
+ Rule Morocco 2080 only - Jun 16 3:00 -1:00 -
+ Rule Morocco 2080 only - Jul 21 2:00 0 -
+ Rule Morocco 2081 only - Jun 1 3:00 -1:00 -
+@@ -1077,7 +1083,7 @@
+ Rule Morocco 2086 only - Apr 14 3:00 -1:00 -
+ Rule Morocco 2086 only - May 19 2:00 0 -
+ Rule Morocco 2087 only - Mar 30 3:00 -1:00 -
+-Rule Morocco 2087 only - May 4 2:00 0 -
++Rule Morocco 2087 only - May 11 2:00 0 -
+ # For dates after the somewhat-arbitrary cutoff of 2087, assume that
+ # Morocco will no longer observe DST. At some point this table will
+ # need to be extended, though quite possibly Morocco will change the
+@@ -1179,7 +1185,7 @@
+ Rule Namibia 1994 only - Mar 21 0:00 -1:00 WAT
+ Rule Namibia 1994 2017 - Sep Sun>=1 2:00 0 CAT
+ Rule Namibia 1995 2017 - Apr Sun>=1 2:00 -1:00 WAT
+-# Rearguard section, for parsers that do not support negative DST.
++# Rearguard section, for parsers lacking negative DST; see ziguard.awk.
+ #Rule Namibia 1994 only - Mar 21 0:00 0 WAT
+ #Rule Namibia 1994 2017 - Sep Sun>=1 2:00 1:00 CAT
+ #Rule Namibia 1995 2017 - Apr Sun>=1 2:00 0 WAT
+@@ -1193,7 +1199,7 @@
+ 2:00 - SAST 1990 Mar 21 # independence
+ # Vanguard section, for zic and other parsers that support negative DST.
+ 2:00 Namibia %s
+-# Rearguard section, for parsers that do not support negative DST.
++# Rearguard section, for parsers lacking negative DST; see ziguard.awk.
+ # 2:00 - CAT 1994 Mar 21 0:00
+ # From Paul Eggert (2017-04-07):
+ # The official date of the 2017 rule change was 2017-10-24. See:
+--- contrib/tzdata/asia.orig
++++ contrib/tzdata/asia
+@@ -286,6 +286,27 @@
+
+ # China
+
++# From Phake Nick (2020-04-15):
++# According to this news report:
++# http://news.sina.com.cn/c/2004-09-01/19524201403.shtml
++# on April 11, 1919, newspaper in Shanghai said clocks in Shanghai will spring
++# forward for an hour starting from midnight of that Saturday. The report did
++# not mention what happened in Shanghai thereafter, but it mentioned that a
++# similar trial in Tianjin which ended at October 1st as citizens are told to
++# recede the clock on September 30 from 12:00pm to 11:00pm. The trial at
++# Tianjin got terminated in 1920.
++#
++# From Paul Eggert (2020-04-15):
++# The Returns of Trade and Trade Reports, page 711, says "Daylight saving was
++# given a trial during the year, and from the 12th April to the 1st October
++# the clocks were all set one hour ahead of sun time. Though the scheme was
++# generally esteemed a success, it was announced early in 1920 that it would
++# not be repeated."
++#
++# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
++Rule Shang 1919 only - Apr 12 24:00 1:00 D
++Rule Shang 1919 only - Sep 30 24:00 0 S
++
+ # From Paul Eggert (2018-10-02):
+ # The following comes from Table 1 of:
+ # Li Yu. Research on the daylight saving movement in 1940s Shanghai.
+@@ -294,7 +315,90 @@
+ # The table lists dates only; I am guessing 00:00 and 24:00 transition times.
+ # Also, the table lists the planned end of DST in 1949, but the corresponding
+ # zone line cuts this off on May 28, when the Communists took power.
++
++# From Phake Nick (2020-04-15):
+ #
++# For the history of time in Shanghai between 1940-1942, the situation is
++# actually slightly more complex than the table [below].... At the time,
++# there were three different authorities in Shanghai, including Shanghai
++# International Settlement, a settlement established by western countries with
++# its own westernized form of government, Shanghai French Concession, similar
++# to the international settlement but is controlled by French, and then the
++# rest of the city of Shanghai, which have already been controlled by Japanese
++# force through a puppet local government (Wang Jingwei regime). It was
++# additionally complicated by the circumstances that, according to the 1940s
++# Shanghai summer time essay cited in the database, some
++# departments/businesses/people in the Shanghai city itself during that time
++# period, refused to change their clock and instead only changed their opening
++# hours.
++#
++# For example, as quoted in the article, in 1940, other than the authority
++# itself, power, tram, bus companies, cinema, department stores, and other
++# public service organizations have all decided to follow the summer time and
++# spring forward the clock. On the other hand, the custom office refused to
++# spring forward the clock because of worry on mechanical wear to the physical
++# clock, postal office refused to spring forward because of disruption to
++# business and log-keeping, although they did changed their office hour to
++# match rest of the city. So is travel agents, and also weather
++# observatory. It is said both time standards had their own supporters in the
++# city at the time, those who prefer new time standard would have moved their
++# clock while those who prefer the old time standard would keep their clock
++# unchange, and there were different clocks that use different time standard
++# in the city at the time for people who use different time standard to adjust
++# their clock to their preferred time.
++#
++# a. For the 1940 May 31 spring forward, the essay claim that it was
++# coordinared between the international settlement authority and the French
++# concession authority and have gathered support from Hong Kong and Xiamen,
++# that it would spring forward an hour from May 31 "midnight", and the essay
++# claim "Hong Kong government implemented the spring forward in the same time
++# on the same date as Shanghai".
++#
++# b. For the 1940 fall back, it was said that they initially intended to do
++# so on September 30 00:59 at night, however they postponed it to October 12
++# after discussion with relevant parties. However schools restored to the
++# original schedule ten days earlier.
++#
++# c. For the 1941 spring forward, it is said to start from March 15
++# "following the previous year's method", and in addition to that the essay
++# cited an announcement in 1941 from the Wang regime which said the Special
++# City of Shanghai under Wang regime control will follow the DST rule set by
++# the Settlements, irrespective of the original DST plan announced by the Wang
++# regime for other area under its control(April 1 to September 30). (no idea
++# to situation before that announcement)
++#
++# d. For the 1941 fall back, it was said that the fall back would occurs at
++# the end of September (A newspaper headline cited by the essay, published on
++# October 1, 1941, have the headlines which said "French Concession would
++# rewind to the old clock this morning), but it ultimately didn't happen due
++# to disagreement between the international settlement authority and the
++# French concession authority, and the fall back ultimately occurred on
++# November 1.
++#
++# e. In 1941 December, Japan have officially started war with the United
++# States and the United Kingdom, and in Shanghai they have marched into the
++# international settlement, taken over its control
++#
++# f. For the 1942 spring forward, the essay said that the spring forward
++# started on January 31. It said this time the custom office and postal
++# department will also change their clocks, unlike before.
++#
++# g. The essay itself didn't cover any specific changes thereafter until the
++# end of the war, it quoted a November 1942 command from the government of the
++# Wang regime, which claim the daylight saving time applies year round during
++# the war. However, the essay ambiguously said the period is "February 1 to
++# September 30", which I don't really understand what is the meaning of such
++# period in the context of year round implementation here.. More researches
++# might be needed to show exactly what happened during that period of time.
++
++# From Phake Nick (2020-04-15):
++# According to a Japanese tour bus pamphlet in Nanjing area believed to be
++# from around year 1941: http://www.tt-museum.jp/tairiku_0280_nan1941.html ,
++# the schedule listed was in the format of Japanese time. Which indicate some
++# use of the Japanese time (instead of syncing by DST) might have occurred in
++# the Yangtze river delta area during that period of time although the scope
++# of such use will need to be investigated to determine.
++#
+ # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
+ Rule Shang 1940 only - Jun 1 0:00 1:00 D
+ Rule Shang 1940 only - Oct 12 24:00 0 S
+@@ -572,7 +676,7 @@
+ 6:00 - +06
+
+
+-# Hong Kong (Xianggang)
++# Hong Kong
+
+ # Milne gives 7:36:41.7; round this.
+
+@@ -582,9 +686,7 @@
+ # it is not [an] observatory, but the official meteorological agency of HK,
+ # and also serves as the official timing agency), there are some missing
+ # and incorrect rules. Although the exact switch over time is missing, I
+-# think 3:30 is correct. The official DST record for Hong Kong can be
+-# obtained from
+-# http://www.hko.gov.hk/gts/time/Summertime.htm
++# think 3:30 is correct.
+
+ # From Phake Nick (2018-10-27):
+ # According to Singaporean newspaper
+@@ -695,10 +797,10 @@
+ # Resolution of the Legislative Council passed on 9 May 1979
+ # https://www.legco.gov.hk/yr78-79/english/lc_sitg/hansard/h790509.pdf#page=39
+
+-# From Paul Eggert (2019-05-31):
++# From Paul Eggert (2020-04-15):
+ # Here are the dates given at
+-# https://www.hko.gov.hk/gts/time/Summertime.htm
+-# as of 2014-06-19:
++# https://www.hko.gov.hk/en/gts/time/Summertime.htm
++# as of 2020-02-10:
+ # Year Period
+ # 1941 15 Jun to 30 Sep
+ # 1942 Whole year
+@@ -1828,6 +1930,47 @@
+
+ # '9:00' and 'JST' is from Guy Harris.
+
++# From Paul Eggert (2020-01-19):
++# Starting in the 7th century, Japan generally followed an ancient Chinese
++# timekeeping system that divided night and day into six hours each,
++# with hour length depending on season. In 1873 the government
++# started requiring the use of a Western style 24-hour clock. See:
++# Yulia Frumer, "Making Time: Astronomical Time Measurement in Tokugawa Japan"
++# . As the tzdb code and
++# data support only 24-hour clocks, its tables model timestamps before
++# 1873 using Western-style local mean time.
++
++# From Hideyuki Suzuki (1998-11-09):
++# 'Tokyo' usually stands for the former location of Tokyo Astronomical
++# Observatory: 139° 44' 40.90" E (9h 18m 58.727s), 35° 39' 16.0" N.
++# This data is from 'Rika Nenpyou (Chronological Scientific Tables) 1996'
++# edited by National Astronomical Observatory of Japan....
++# JST (Japan Standard Time) has been used since 1888-01-01 00:00 (JST).
++# The law is enacted on 1886-07-07.
++
++# From Hideyuki Suzuki (1998-11-16):
++# The ordinance No. 51 (1886) established "standard time" in Japan,
++# which stands for the time on 135° E.
++# In the ordinance No. 167 (1895), "standard time" was renamed to "central
++# standard time". And the same ordinance also established "western standard
++# time", which stands for the time on 120° E.... But "western standard
++# time" was abolished in the ordinance No. 529 (1937). In the ordinance No.
++# 167, there is no mention regarding for what place western standard time is
++# standard....
++#
++# I wrote "ordinance" above, but I don't know how to translate.
++# In Japanese it's "chokurei", which means ordinance from emperor.
++
++# From Yu-Cheng Chuang (2013-07-12):
++# ...the Meiji Emperor announced Ordinance No. 167 of Meiji Year 28 "The clause
++# about standard time" ... The adoption began from Jan 1, 1896.
++# https://ja.wikisource.org/wiki/標準時ニ關スル件_(公布時)
++#
++# ...the Showa Emperor announced Ordinance No. 529 of Showa Year 12 ... which
++# means the whole Japan territory, including later occupations, adopt Japan
++# Central Time (UT+9). The adoption began on Oct 1, 1937.
++# https://ja.wikisource.org/wiki/明治二十八年勅令第百六十七號標準時ニ關スル件中改正ノ件
++
+ # From Paul Eggert (1995-03-06):
+ # Today's _Asahi Evening News_ (page 4) reports that Japan had
+ # daylight saving between 1948 and 1951, but "the system was discontinued
+@@ -1876,37 +2019,6 @@
+ Rule Japan 1949 only - Apr Sat>=1 24:00 1:00 D
+ Rule Japan 1950 1951 - May Sat>=1 24:00 1:00 D
+
+-# From Hideyuki Suzuki (1998-11-09):
+-# 'Tokyo' usually stands for the former location of Tokyo Astronomical
+-# Observatory: 139° 44' 40.90" E (9h 18m 58.727s), 35° 39' 16.0" N.
+-# This data is from 'Rika Nenpyou (Chronological Scientific Tables) 1996'
+-# edited by National Astronomical Observatory of Japan....
+-# JST (Japan Standard Time) has been used since 1888-01-01 00:00 (JST).
+-# The law is enacted on 1886-07-07.
+-
+-# From Hideyuki Suzuki (1998-11-16):
+-# The ordinance No. 51 (1886) established "standard time" in Japan,
+-# which stands for the time on 135° E.
+-# In the ordinance No. 167 (1895), "standard time" was renamed to "central
+-# standard time". And the same ordinance also established "western standard
+-# time", which stands for the time on 120° E.... But "western standard
+-# time" was abolished in the ordinance No. 529 (1937). In the ordinance No.
+-# 167, there is no mention regarding for what place western standard time is
+-# standard....
+-#
+-# I wrote "ordinance" above, but I don't know how to translate.
+-# In Japanese it's "chokurei", which means ordinance from emperor.
+-
+-# From Yu-Cheng Chuang (2013-07-12):
+-# ...the Meiji Emperor announced Ordinance No. 167 of Meiji Year 28 "The clause
+-# about standard time" ... The adoption began from Jan 1, 1896.
+-# https://ja.wikisource.org/wiki/標準時ニ關スル件_(公布時)
+-#
+-# ...the Showa Emperor announced Ordinance No. 529 of Showa Year 12 ... which
+-# means the whole Japan territory, including later occupations, adopt Japan
+-# Central Time (UT+9). The adoption began on Oct 1, 1937.
+-# https://ja.wikisource.org/wiki/明治二十八年勅令第百六十七號標準時ニ關スル件中改正ノ件
+-
+ # Zone NAME STDOFF RULES FORMAT [UNTIL]
+ Zone Asia/Tokyo 9:18:59 - LMT 1887 Dec 31 15:00u
+ 9:00 Japan J%sT
+@@ -3086,22 +3198,9 @@
+ # [T]he Palestinian cabinet decision (Mar 8th 2016) published on
+ # http://www.palestinecabinet.gov.ps/WebSite/Upload/Decree/GOV_17/16032016134830.pdf
+ # states that summer time will end on Oct 29th at 01:00.
+-#
+-# From Tim Parenti (2016-10-19):
+-# Predict fall transitions on October's last Saturday at 01:00 from now on.
+-# This is consistent with the 2016 transition as well as our spring
+-# predictions.
+-#
+-# From Paul Eggert (2016-10-19):
+-# It's also consistent with predictions in the following URLs today:
+-# https://www.timeanddate.com/time/change/gaza-strip/gaza
+-# https://www.timeanddate.com/time/change/west-bank/hebron
+
+ # From Sharef Mustafa (2018-03-16):
+-# Palestine summer time will start on Mar 24th 2018 by advancing the
+-# clock by 60 minutes as per Palestinian cabinet decision published on
+-# the official website, though the decree did not specify the exact
+-# time of the time shift.
++# Palestine summer time will start on Mar 24th 2018 ...
+ # http://www.palestinecabinet.gov.ps/Website/AR/NDecrees/ViewFile.ashx?ID=e7a42ab7-ee23-435a-b9c8-a4f7e81f3817
+
+ # From Even Scharning (2019-03-23):
+@@ -3111,15 +3210,20 @@
+ # From Sharif Mustafa (2019-03-26):
+ # The Palestinian cabinet announced today that the switch to DST will
+ # be on Fri Mar 29th 2019 by advancing the clock by 60 minutes.
+-# The decree signing date is Mar 12th but it was not published till today.
+-# The decree does not specify the exact time of switch.
+ # http://palestinecabinet.gov.ps/Website/AR/NDecrees/ViewFile.ashx?ID=e54e9ea1-50ee-4137-84df-0d6c78da259b
+ #
+ # From Even Scharning (2019-04-10):
+ # Our source in Palestine said it happened Friday 29 at 00:00 local time....
++
++# From Sharef Mustafa (2019-10-18):
++# Palestine summer time will end on midnight Oct 26th 2019 ...
++# http://www.palestinecabinet.gov.ps/website/ar/ViewDetails?ID=43948
+ #
+ # From Paul Eggert (2019-04-10):
+ # For now, guess spring-ahead transitions are March's last Friday at 00:00.
++#
++# From Tim Parenti (2016-10-19):
++# Predict fall transitions on October's last Saturday at 01:00 from now on.
+
+ # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
+ Rule EgyptAsia 1957 only - May 10 0:00 1:00 S
+--- contrib/tzdata/backward.orig
++++ contrib/tzdata/backward
+@@ -17,6 +17,7 @@
+ Link America/Argentina/Cordoba America/Cordoba
+ Link America/Tijuana America/Ensenada
+ Link America/Indiana/Indianapolis America/Fort_Wayne
++Link America/Nuuk America/Godthab
+ Link America/Indiana/Indianapolis America/Indianapolis
+ Link America/Argentina/Jujuy America/Jujuy
+ Link America/Indiana/Knox America/Knox_IN
+--- contrib/tzdata/backzone.orig
++++ contrib/tzdata/backzone
+@@ -33,6 +33,35 @@
+ # assumes rules from other files. In the tz distribution, use
+ # 'make PACKRATDATA=backzone zones' to compile and install this file.
+
++
++# From Paul Eggert (2020-04-15):
++# The following remarks should be incorporated into this table sometime.
++# Patches in 'git format-patch' format would be welcome.
++#
++# From Phake Nick (2020-04-15):
++# ... the historical timezone data for those China zones seems to be
++# incorrect. The transition to GMT+8 date given there for these zones
++# were 1980 which also contradict the file description that they do
++# not disagree with normal zone after 1970. According to sources that
++# have also been cited in the asia file, except Xinjiang and Tibet,
++# they should have adopted the Beijing Time from around 1949/1950
++# depends on exactly when each of those cities were taken over by the
++# communist army. And they should also follow the DST setting of
++# Asia/Shanghai after that point of time. In addition,
++# http://gaz.ncl.edu.tw/detail.jsp?sysid=E1091792 the document from
++# Chongqing Nationalist government say in year 1945 all of China
++# should adopt summer time due to the war (not sure whether it
++# continued after WWII ends)(Probably only enforced in area under
++# their rule at the time?) The Asia/Harbin's 1932 and 1940 entry
++# should also be incorrect. As per sources recorded at
++# https://wiki.suikawiki.org/n/%E6%BA%80%E5%B7%9E%E5%9B%BD%E3%81%AE%E6%A8%99%E6%BA%96%E6%99%82
++# , in 1932 Harbin should have adopted UTC+8:00 instead of data
++# currently listed in the tz database according to official
++# announcement from Manchuko. And they should have adopted GMT+9 in
++# 1937 January 1st according to official announcement at the time
++# being cited on the webpage.
++
++
+ # Zones are sorted by zone name. Each zone is preceded by the
+ # name of the country that the zone is in, along with any other
+ # commentary and rules associated with the entry.
+--- contrib/tzdata/europe.orig
++++ contrib/tzdata/europe
+@@ -549,12 +549,13 @@
+ 0:00 1:00 IST 1947 Nov 2 2:00s
+ 0:00 - GMT 1948 Apr 18 2:00s
+ 0:00 GB-Eire GMT/IST 1968 Oct 27
+-# The next line is for when negative SAVE values are used.
++# Vanguard section, for zic and other parsers that support negative DST.
+ 1:00 Eire IST/GMT
+-# These three lines are for when SAVE values are always nonnegative.
++# Rearguard section, for parsers lacking negative DST; see ziguard.awk.
+ # 1:00 - IST 1971 Oct 31 2:00u
+ # 0:00 GB-Eire GMT/IST 1996
+ # 0:00 EU GMT/IST
++# End of rearguard section.
+
+
+ ###############################################################################
+@@ -1018,7 +1019,7 @@
+ 1:00 Czech CE%sT 1946 Dec 1 3:00
+ # Vanguard section, for zic and other parsers that support negative DST.
+ 1:00 -1:00 GMT 1947 Feb 23 2:00
+-# Rearguard section, for parsers that do not support negative DST.
++# Rearguard section, for parsers lacking negative DST; see ziguard.awk.
+ # 0:00 - GMT 1947 Feb 23 2:00
+ # End of rearguard section.
+ 1:00 Czech CE%sT 1979
+@@ -1175,14 +1176,17 @@
+ -3:00 - -03 1980 Apr 6 2:00
+ -3:00 EU -03/-02 1996
+ 0:00 - GMT
++#
++# Use the old name Scoresbysund, as the current name Ittoqqortoormiit
++# exceeds tzdb's 14-letter limit and has no common English abbreviation.
+ Zone America/Scoresbysund -1:27:52 - LMT 1916 Jul 28 # Ittoqqortoormiit
+ -2:00 - -02 1980 Apr 6 2:00
+ -2:00 C-Eur -02/-01 1981 Mar 29
+ -1:00 EU -01/+00
+-Zone America/Godthab -3:26:56 - LMT 1916 Jul 28 # Nuuk
++Zone America/Nuuk -3:26:56 - LMT 1916 Jul 28 # Godthåb
+ -3:00 - -03 1980 Apr 6 2:00
+ -3:00 EU -03/-02
+-Zone America/Thule -4:35:08 - LMT 1916 Jul 28 # Pituffik air base
++Zone America/Thule -4:35:08 - LMT 1916 Jul 28 # Pituffik
+ -4:00 Thule A%sT
+
+ # Estonia
+@@ -1552,7 +1556,7 @@
+ #
+ # From January 1st, 1908 the whole of Iceland was standardised at 1 hour
+ # behind GMT. Previously, local mean solar time was used in different parts
+-# of Iceland, the almanak had been based on Reykjavik mean solar time which
++# of Iceland, the almanak had been based on Reykjavík mean solar time which
+ # was 1 hour and 28 minutes behind GMT.
+ #
+ # "first day of winter" referred to [below] means the first day of the 26 weeks
+--- contrib/tzdata/leap-seconds.list.orig
++++ contrib/tzdata/leap-seconds.list
+@@ -62,7 +62,7 @@
+ # Terry Quinn, "The BIPM and the Accurate Measurement
+ # of Time," Proc. of the IEEE, Vol. 79, pp. 894-905,
+ # July, 1991.
+-# reprinted in:
++# reprinted in:
+ # Christine Hackman and Donald B Sullivan (eds.)
+ # Time and Frequency Measurement
+ # American Association of Physics Teachers (1996)
+@@ -204,10 +204,10 @@
+ # current -- the update time stamp, the data and the name of the file
+ # will not change.
+ #
+-# Updated through IERS Bulletin C58
+-# File expires on: 28 June 2020
++# Updated through IERS Bulletin C59
++# File expires on: 28 December 2020
+ #
+-#@ 3802291200
++#@ 3818102400
+ #
+ 2272060800 10 # 1 Jan 1972
+ 2287785600 11 # 1 Jul 1972
+@@ -252,4 +252,4 @@
+ # the hash line is also ignored in the
+ # computation.
+ #
+-#h f28827d2 f263b6c3 ec0f19eb a3e0dbf0 97f3fa30
++#h a1c168ae 27c79a7d 9dddcfc3 bcfe616b 2e2c44ea
+--- contrib/tzdata/leapseconds.orig
++++ contrib/tzdata/leapseconds
+@@ -64,9 +64,15 @@
+ Leap 2015 Jun 30 23:59:60 + S
+ Leap 2016 Dec 31 23:59:60 + S
+
++# UTC timestamp when this leap second list expires.
++# Any additional leap seconds will come after this.
++# This Expires line is commented out for now,
++# so that pre-2020a zic implementations do not reject this file.
++#Expires 2020 Dec 28 00:00:00
++
+ # POSIX timestamps for the data in this file:
+ #updated 1467936000 (2016-07-08 00:00:00 UTC)
+-#expires 1593302400 (2020-06-28 00:00:00 UTC)
++#expires 1609113600 (2020-12-28 00:00:00 UTC)
+
+-# Updated through IERS Bulletin C58
+-# File expires on: 28 June 2020
++# Updated through IERS Bulletin C59
++# File expires on: 28 December 2020
+--- contrib/tzdata/leapseconds.awk.orig
++++ contrib/tzdata/leapseconds.awk
+@@ -68,12 +68,12 @@
+ monthabbr[11] = "Nov"
+ monthabbr[12] = "Dec"
+
+- # Strip trailing CR, in case the input has CRLF form a la NIST.
+- RS = "\r?\n"
+-
+ sstamp_init()
+ }
+
++# In case the input has CRLF form a la NIST.
++{ sub(/\r$/, "") }
++
+ /^#[ \t]*[Uu]pdated through/ || /^#[ \t]*[Ff]ile expires on/ {
+ last_lines = last_lines $0 "\n"
+ }
+@@ -100,6 +100,17 @@
+ }
+
+ END {
++ sstamp_to_ymdhMs(expires, ss_NTP)
++
++ print ""
++ print "# UTC timestamp when this leap second list expires."
++ print "# Any additional leap seconds will come after this."
++ print "# This Expires line is commented out for now,"
++ print "# so that pre-2020a zic implementations do not reject this file."
++ printf "%sExpires %.4d\t%s\t%.2d\t%.2d:%.2d:%.2d\n", \
++ EXPIRES_LINE ? "" : "#", \
++ ss_year, monthabbr[ss_month], ss_mday, ss_hour, ss_min, ss_sec
++
+ # The difference between the NTP and POSIX epochs is 70 years
+ # (including 17 leap days), each 24 hours of 60 minutes of 60
+ # seconds each.
+--- contrib/tzdata/northamerica.orig
++++ contrib/tzdata/northamerica
+@@ -86,7 +86,7 @@
+ # For more about the first ten years of DST in the United States, see
+ # Robert Garland, Ten years of daylight saving from the Pittsburgh standpoint
+ # (Carnegie Library of Pittsburgh, 1927).
+-# http://www.clpgh.org/exhibit/dst.html
++# https://web.archive.org/web/20160517155308/http://www.clpgh.org/exhibit/dst.html
+ #
+ # Shanks says that DST was called "War Time" in the US in 1918 and 1919.
+ # However, DST was imposed by the Standard Time Act of 1918, which
+@@ -1470,7 +1470,8 @@
+ -4:00 Canada A%sT
+
+
+-# west Labrador, Nova Scotia, Prince Edward I
++# west Labrador, Nova Scotia, Prince Edward I,
++# Îles-de-la-Madeleine, Listuguj reserve
+
+ # From Brian Inglis (2015-07-20):
+ # From the historical weather station records available at:
+@@ -1489,6 +1490,13 @@
+ # in Canada to observe DST in 1971 but not 1970; for now we'll assume
+ # this is a typo.
+
++# From Jeffery Nichols (2020-01-09):
++# America/Halifax ... also applies to Îles-de-la-Madeleine and the Listuguj
++# reserve in Quebec. Officially, this came into effect on January 1, 2007
++# (Legal Time Act, CQLR c T-5.1), but the legislative debates surrounding that
++# bill say that it is "accommodating the customs and practices" of those
++# regions, which suggests that they have always been in-line with Halifax.
++
+ # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
+ Rule Halifax 1916 only - Apr 1 0:00 1:00 D
+ Rule Halifax 1916 only - Oct 1 0:00 0 S
+@@ -1582,8 +1590,9 @@
+
+ # Quebec
+
+-# From Paul Eggert (2015-03-24):
++# From Paul Eggert (2020-01-10):
+ # See America/Toronto for most of Quebec, including Montreal.
++# See America/Halifax for the Îles de la Madeleine and the Listuguj reserve.
+ #
+ # Matthews and Vincent (1998) also write that Quebec east of the -63
+ # meridian is supposed to observe AST, but residents as far east as
+@@ -1590,11 +1599,11 @@
+ # Natashquan use EST/EDT, and residents east of Natashquan use AST.
+ # The Quebec department of justice writes in
+ # "The situation in Minganie and Basse-Côte-Nord"
+-# http://www.justice.gouv.qc.ca/english/publications/generale/temps-minganie-a.htm
++# https://www.justice.gouv.qc.ca/en/department/ministre/functions-and-responsabilities/legal-time-in-quebec/the-situation-in-minganie-and-basse-cote-nord/
+ # that the coastal strip from just east of Natashquan to Blanc-Sablon
+ # observes Atlantic standard time all year round.
+-# https://www.assnat.qc.ca/Media/Process.aspx?MediaId=ANQ.Vigie.Bll.DocumentGenerique_8845en
+-# says this common practice was codified into law as of 2007.
++# This common practice was codified into law as of 2007; see Legal Time Act,
++# CQLR c T-5.1 .
+ # For lack of better info, guess this practice began around 1970, contra to
+ # Shanks & Pottenger who have this region observing AST/ADT.
+
+@@ -1613,6 +1622,15 @@
+ # Nipigon (EST) and Rainy River (CST) are the largest that we know of.
+ # Far west Ontario is like Winnipeg; far east Quebec is like Halifax.
+
++# From Jeffery Nichols (2020-02-06):
++# According to the [Shanks] atlas, those western Ontario zones are huge,
++# covering most of Ontario northwest of Sault Ste Marie and Timmins.
++# The zones seem to include towns bigger than the ones they're named after,
++# like Dryden in America/Rainy_River and Wawa (and maybe Attawapiskat) in
++# America/Nipigon. I assume it's too much trouble to change the name of the
++# zone (like when you found out that America/Glace_Bay includes Sydney, Nova
++# Scotia)....
++
+ # From Mark Brader (2003-07-26):
+ # [According to the Toronto Star] Orillia, Ontario, adopted DST
+ # effective Saturday, 1912-06-22, 22:00; the article mentions that
+@@ -2419,6 +2437,18 @@
+ # obtained in November 2008 should be ignored...
+ # I apologize for reporting incorrect information in 2008.
+
++# From Tim Parenti (2020-03-05):
++# The government of Yukon announced [yesterday] the cessation of seasonal time
++# changes. "After clocks are pushed ahead one hour on March 8, the territory
++# will remain on [UTC-07]. ... [The government] found 93 per cent of
++# respondents wanted to end seasonal time changes and, of that group, 70 per
++# cent wanted 'permanent Pacific Daylight Saving Time.'"
++# https://www.cbc.ca/news/canada/north/yukon-end-daylight-saving-time-1.5486358
++#
++# Although the government press release prefers PDT, we prefer MST for
++# consistency with nearby Dawson Creek, Creston, and Fort Nelson.
++# https://yukon.ca/en/news/yukon-end-seasonal-time-change
++
+ # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
+ Rule NT_YK 1918 only - Apr 14 2:00 1:00 D
+ Rule NT_YK 1918 only - Oct 27 2:00 0 S
+@@ -2473,11 +2503,13 @@
+ Zone America/Whitehorse -9:00:12 - LMT 1900 Aug 20
+ -9:00 NT_YK Y%sT 1967 May 28 0:00
+ -8:00 NT_YK P%sT 1980
+- -8:00 Canada P%sT
++ -8:00 Canada P%sT 2020 Mar 8 2:00
++ -7:00 - MST
+ Zone America/Dawson -9:17:40 - LMT 1900 Aug 20
+ -9:00 NT_YK Y%sT 1973 Oct 28 0:00
+ -8:00 NT_YK P%sT 1980
+- -8:00 Canada P%sT
++ -8:00 Canada P%sT 2020 Mar 8 2:00
++ -7:00 - MST
+
+
+ ###############################################################################
+--- contrib/tzdata/theory.html.orig
++++ contrib/tzdata/theory.html
+@@ -298,6 +298,10 @@
+ If a name is changed, put its old spelling in the
+ 'backward
' file.
+ This means old spellings will continue to work.
++ Ordinarily a name change should occur only in the rare case when
++ a location's consensus English-language spelling changes; for example,
++ in 2008 Asia/Calcutta
was renamed to Asia/Kolkata
++ due to long-time widespread use of the new city name instead of the old.
+
+
+
+@@ -1054,23 +1058,6 @@
+ The functions were inspired by NetBSD.
+
+
+- A function tzsetwall
has been added to arrange for the
+- system's best approximation to local (wall clock) time to be delivered
+- by subsequent calls to localtime
.
+- Source code for portable applications that "must" run on local
+- time should call tzsetwall
;
+- if such code is moved to "old" systems that do not
+- provide tzsetwall
, you will not be able to generate an
+- executable program.
+- (These functions also arrange for local time to
+- be used if tzset
is called – directly or
+- indirectly – and there is no TZ
environment
+- variable; portable applications should not, however, rely on this
+- behavior since it is not the way SVR2
+- systems behave.)
+-
+-
+ Negative time_t
values are supported, on systems
+ where time_t
is signed.
+
+@@ -1137,7 +1124,7 @@
+ may now examine localtime(&clock)->tm_zone
+ (if TM_ZONE
is defined) or
+ tzname[localtime(&clock)->tm_isdst]
+- (if HAVE_TZNAME
is defined) to learn the correct time
++ (if HAVE_TZNAME
is nonzero) to learn the correct time
+ zone abbreviation to use.
+
+
+--- contrib/tzdata/version.orig
++++ contrib/tzdata/version
+@@ -1 +1 @@
+-2019c
++2020a
+--- contrib/tzdata/zone.tab.orig
++++ contrib/tzdata/zone.tab
+@@ -131,8 +131,8 @@
+ CA +5946-12014 America/Dawson_Creek MST - BC (Dawson Cr, Ft St John)
+ CA +5848-12242 America/Fort_Nelson MST - BC (Ft Nelson)
+ CA +4916-12307 America/Vancouver Pacific - BC (most areas)
+-CA +6043-13503 America/Whitehorse Pacific - Yukon (south)
+-CA +6404-13925 America/Dawson Pacific - Yukon (north)
++CA +6043-13503 America/Whitehorse Pacific - Yukon (east)
++CA +6404-13925 America/Dawson Pacific - Yukon (west)
+ CC -1210+09655 Indian/Cocos
+ CD -0418+01518 Africa/Kinshasa Dem. Rep. of Congo (west)
+ CD -1140+02728 Africa/Lubumbashi Dem. Rep. of Congo (east)
+@@ -189,7 +189,7 @@
+ GG +492717-0023210 Europe/Guernsey
+ GH +0533-00013 Africa/Accra
+ GI +3608-00521 Europe/Gibraltar
+-GL +6411-05144 America/Godthab Greenland (most areas)
++GL +6411-05144 America/Nuuk Greenland (most areas)
+ GL +7646-01840 America/Danmarkshavn National Park (east coast)
+ GL +7029-02158 America/Scoresbysund Scoresbysund/Ittoqqortoormiit
+ GL +7634-06847 America/Thule Thule/Pituffik
+@@ -335,7 +335,7 @@
+ # The obsolescent zone.tab format cannot represent Europe/Simferopol well.
+ # Put it in RU section and list as UA. See "territorial claims" above.
+ # Programs should use zone1970.tab instead; see above.
+-UA +4457+03406 Europe/Simferopol MSK+00 - Crimea
++UA +4457+03406 Europe/Simferopol Crimea
+ RU +5836+04939 Europe/Kirov MSK+00 - Kirov
+ RU +4621+04803 Europe/Astrakhan MSK+01 - Astrakhan
+ RU +4844+04425 Europe/Volgograd MSK+01 - Volgograd
+@@ -399,8 +399,8 @@
+ TW +2503+12130 Asia/Taipei
+ TZ -0648+03917 Africa/Dar_es_Salaam
+ UA +5026+03031 Europe/Kiev Ukraine (most areas)
+-UA +4837+02218 Europe/Uzhgorod Ruthenia
+-UA +4750+03510 Europe/Zaporozhye Zaporozh'ye/Zaporizhia; Lugansk/Luhansk (east)
++UA +4837+02218 Europe/Uzhgorod Transcarpathia
++UA +4750+03510 Europe/Zaporozhye Zaporozhye and east Lugansk
+ UG +0019+03225 Africa/Kampala
+ UM +2813-17722 Pacific/Midway Midway Islands
+ UM +1917+16637 Pacific/Wake Wake Island
+--- contrib/tzdata/zone1970.tab.orig
++++ contrib/tzdata/zone1970.tab
+@@ -129,8 +129,8 @@
+ CA +5946-12014 America/Dawson_Creek MST - BC (Dawson Cr, Ft St John)
+ CA +5848-12242 America/Fort_Nelson MST - BC (Ft Nelson)
+ CA +4916-12307 America/Vancouver Pacific - BC (most areas)
+-CA +6043-13503 America/Whitehorse Pacific - Yukon (south)
+-CA +6404-13925 America/Dawson Pacific - Yukon (north)
++CA +6043-13503 America/Whitehorse Pacific - Yukon (east)
++CA +6404-13925 America/Dawson Pacific - Yukon (west)
+ CC -1210+09655 Indian/Cocos
+ CH,DE,LI +4723+00832 Europe/Zurich Swiss time
+ CI,BF,GM,GN,ML,MR,SH,SL,SN,TG +0519-00402 Africa/Abidjan
+@@ -174,7 +174,7 @@
+ GF +0456-05220 America/Cayenne
+ GH +0533-00013 Africa/Accra
+ GI +3608-00521 Europe/Gibraltar
+-GL +6411-05144 America/Godthab Greenland (most areas)
++GL +6411-05144 America/Nuuk Greenland (most areas)
+ GL +7646-01840 America/Danmarkshavn National Park (east coast)
+ GL +7029-02158 America/Scoresbysund Scoresbysund/Ittoqqortoormiit
+ GL +7634-06847 America/Thule Thule/Pituffik
+@@ -291,7 +291,7 @@
+ RU +5443+02030 Europe/Kaliningrad MSK-01 - Kaliningrad
+ RU +554521+0373704 Europe/Moscow MSK+00 - Moscow area
+ # Mention RU and UA alphabetically. See "territorial claims" above.
+-RU,UA +4457+03406 Europe/Simferopol MSK+00 - Crimea
++RU,UA +4457+03406 Europe/Simferopol Crimea
+ RU +5836+04939 Europe/Kirov MSK+00 - Kirov
+ RU +4621+04803 Europe/Astrakhan MSK+01 - Astrakhan
+ RU +4844+04425 Europe/Volgograd MSK+01 - Volgograd
+@@ -342,8 +342,8 @@
+ TV -0831+17913 Pacific/Funafuti
+ TW +2503+12130 Asia/Taipei
+ UA +5026+03031 Europe/Kiev Ukraine (most areas)
+-UA +4837+02218 Europe/Uzhgorod Ruthenia
+-UA +4750+03510 Europe/Zaporozhye Zaporozh'ye/Zaporizhia; Lugansk/Luhansk (east)
++UA +4837+02218 Europe/Uzhgorod Transcarpathia
++UA +4750+03510 Europe/Zaporozhye Zaporozhye and east Lugansk
+ UM +1917+16637 Pacific/Wake Wake Island
+ US +404251-0740023 America/New_York Eastern (most areas)
+ US +421953-0830245 America/Detroit Eastern - MI (most areas)
diff --git a/share/security/patches/EN-20:08/tzdata-2020a.patch.asc b/share/security/patches/EN-20:08/tzdata-2020a.patch.asc
new file mode 100644
index 0000000000..4a185f385e
--- /dev/null
+++ b/share/security/patches/EN-20:08/tzdata-2020a.patch.asc
@@ -0,0 +1,18 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQKTBAABCgB9FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAl664A5fFIAAAAAALgAo
+aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZD
+MEU4NzhBRTVBRkU3ODgwMjhENjM1NUQzOTc5MkY0OUVBN0U1QzIACgkQ05eS9J6n
+5cKODw//cJQJmbbx8gQCJ1d1PkK6RE6kOjTdk7QVEJarhhfar3FF9qm/ZmGpkD0P
+7o4EST7BraN2sTXxEmwh7Fd+ai+3z3SnxXE2DdnvC/Tw4bGxx42nn9iquCuedZrm
+C7A8s9I+H1IguIMnB5kvsvaANVUC0Aa/8KTgMu5uCzPmFvaOnrnZTiYewJzy9Syr
+LXcUYzykxp3c8ypWiL8CXtyFhoh+J6zXMIphKBl6kF+w+f0dROUEdFpR8iQdg24I
+ZbV0IqHKjExnpOeANgpKFPXMVL5D7lw9r++aFCpEypjHI7x+bvhMmTpsWc5AvOdg
+Gqm6sik8JszEC5H+mMmUMTPadlEUzsaIgz9JaqB4xPmkIRbJ3jes+bytmCgbnJ3a
+WMeGCyQscb1FVOQ7hLL7RzTj5CfwoF1muCu/sQhN7MkYkAEwghKezCaXY0z8THwU
+geyno2Fc13Htg/L+Msb5zZIANASNjocNx9+oOtnIkTNeYed3kSjyLiLPwm+/E4t4
+kB/5BbXigAiS8n2pFPEnqqlzXP43yxRp+AI6gjDbL1nVoF+7nLUGO1rdPfaVvmXC
+HzoBoFkDcuMWz69ctMFZOo3Y7Qty+i5vVgkf0EHj3CpgZPQvgcfy1m0jSgZw2+ti
+R2UTj+ps9PfAW0tqNHaOGAMdRhfZYGhRWSRyI3f66OO/r4tlkao=
+=083Y
+-----END PGP SIGNATURE-----
diff --git a/share/security/patches/EN-20:09/igb.patch b/share/security/patches/EN-20:09/igb.patch
new file mode 100644
index 0000000000..b73d3091c7
--- /dev/null
+++ b/share/security/patches/EN-20:09/igb.patch
@@ -0,0 +1,84 @@
+--- sys/dev/e1000/if_em.c.orig
++++ sys/dev/e1000/if_em.c
+@@ -1395,10 +1395,8 @@
+ IFDI_INTR_DISABLE(ctx);
+
+ /* Link status change */
+- if (reg_icr & (E1000_ICR_RXSEQ | E1000_ICR_LSC)) {
+- adapter->hw.mac.get_link_status = 1;
+- iflib_admin_intr_deferred(ctx);
+- }
++ if (reg_icr & (E1000_ICR_RXSEQ | E1000_ICR_LSC))
++ em_handle_link(ctx);
+
+ if (reg_icr & E1000_ICR_RXO)
+ adapter->rx_overruns++;
+@@ -1481,22 +1479,24 @@
+
+ if (reg_icr & (E1000_ICR_RXSEQ | E1000_ICR_LSC)) {
+ em_handle_link(adapter->ctx);
+- } else {
+- E1000_WRITE_REG(&adapter->hw, E1000_IMS,
+- EM_MSIX_LINK | E1000_IMS_LSC);
+- if (adapter->hw.mac.type >= igb_mac_min)
+- E1000_WRITE_REG(&adapter->hw, E1000_EIMS, adapter->link_mask);
++ } else if (adapter->hw.mac.type == e1000_82574) {
++ /* Only re-arm 82574 if em_if_update_admin_status() won't. */
++ E1000_WRITE_REG(&adapter->hw, E1000_IMS, EM_MSIX_LINK |
++ E1000_IMS_LSC);
+ }
+
+- /*
+- * Because we must read the ICR for this interrupt
+- * it may clear other causes using autoclear, for
+- * this reason we simply create a soft interrupt
+- * for all these vectors.
+- */
+- if (reg_icr && adapter->hw.mac.type < igb_mac_min) {
+- E1000_WRITE_REG(&adapter->hw,
+- E1000_ICS, adapter->ims);
++ if (adapter->hw.mac.type == e1000_82574) {
++ /*
++ * Because we must read the ICR for this interrupt it may
++ * clear other causes using autoclear, for this reason we
++ * simply create a soft interrupt for all these vectors.
++ */
++ if (reg_icr)
++ E1000_WRITE_REG(&adapter->hw, E1000_ICS, adapter->ims);
++ } else {
++ /* Re-arm unconditionally */
++ E1000_WRITE_REG(&adapter->hw, E1000_IMS, E1000_IMS_LSC);
++ E1000_WRITE_REG(&adapter->hw, E1000_EIMS, adapter->link_mask);
+ }
+
+ return (FILTER_HANDLED);
+@@ -1512,7 +1512,6 @@
+ iflib_admin_intr_deferred(ctx);
+ }
+
+-
+ /*********************************************************************
+ *
+ * Media Ioctl callback
+@@ -1829,14 +1828,15 @@
+ em_update_stats_counters(adapter);
+
+ /* Reset LAA into RAR[0] on 82571 */
+- if ((adapter->hw.mac.type == e1000_82571) &&
+- e1000_get_laa_state_82571(&adapter->hw))
+- e1000_rar_set(&adapter->hw, adapter->hw.mac.addr, 0);
++ if (hw->mac.type == e1000_82571 && e1000_get_laa_state_82571(hw))
++ e1000_rar_set(hw, hw->mac.addr, 0);
+
+- if (adapter->hw.mac.type < em_mac_min)
++ if (hw->mac.type < em_mac_min)
+ lem_smartspeed(adapter);
+-
+- E1000_WRITE_REG(&adapter->hw, E1000_IMS, EM_MSIX_LINK | E1000_IMS_LSC);
++ else if (hw->mac.type == e1000_82574 &&
++ adapter->intr_type == IFLIB_INTR_MSIX)
++ E1000_WRITE_REG(&adapter->hw, E1000_IMS, EM_MSIX_LINK |
++ E1000_IMS_LSC);
+ }
+
+ static void
diff --git a/share/security/patches/EN-20:09/igb.patch.asc b/share/security/patches/EN-20:09/igb.patch.asc
new file mode 100644
index 0000000000..70017cd21f
--- /dev/null
+++ b/share/security/patches/EN-20:09/igb.patch.asc
@@ -0,0 +1,18 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQKTBAABCgB9FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAl664A5fFIAAAAAALgAo
+aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZD
+MEU4NzhBRTVBRkU3ODgwMjhENjM1NUQzOTc5MkY0OUVBN0U1QzIACgkQ05eS9J6n
+5cKm0w//cglvZ8m6vivLMk2uiLy+itM6yKXO2NSHtRY4aRguAv3HaQoEs6+BupfI
+tYZdqrfdi1BIOD6+ANWwwghhx/8T6Hw7VYOr7C9X5Di3YuErpgz87V6uF6+hRqcI
+A7mQ0CRXS+7s98w9IIOIirdAXkP9S7ASDAgP6kzN1ym6zCkeGaMctgaEDbTdICUq
+nSKNpgA0XVG86HetEu7OZm2laxgdItPFRKQvoNp0VpQ5rya4XYagw6PhAjY0rH3g
+Wc6JdIwhRrSs4XkfmsNXVNTy87vI+gTVSYNZD3K+uvGIO/RBvwPo5QtbR/EoGZHY
+D3hK/4xQWd7Pd2nPUkZhRZ3hqc4vEdNlqKcNBhh8LSGB/qFuDsaqJd8UF83Sfpsy
+UuJiauksB0U29QHhWYef3tMGjaiQjJ/Alt9KN/+aX+h30uFUTHZMnK1d3VLEXKdh
+rV60ezQGuUjGlayICVl0fYCEhvMfQAdYvM+VorZCReznpzcv0nZBBjj/cBVl+pzu
+VlzU3J9kRSPShIWfHPxBzdaTaIWvD3WFIUUkYRzOLrLoDKI5IbDODh09ySrvsFEs
+z3Q1TKtYHySqlNP+MhegFn5LkqqGElJQxmVLdMG1f5ELs6Zg8HnYWhDfHVWXnRe9
+52/PolRWMxy0D5S/5JNO4lIp+hcV1G0Pwnney/sTtyK/o77HH34=
+=L1Qp
+-----END PGP SIGNATURE-----
diff --git a/share/security/patches/EN-20:10/build.11.patch b/share/security/patches/EN-20:10/build.11.patch
new file mode 100644
index 0000000000..f752de71e1
--- /dev/null
+++ b/share/security/patches/EN-20:10/build.11.patch
@@ -0,0 +1,31 @@
+--- share/mk/bsd.compiler.mk.orig
++++ share/mk/bsd.compiler.mk
+@@ -156,7 +156,7 @@
+ . endif
+ .endif
+ .if !defined(${X_}COMPILER_VERSION)
+-${X_}COMPILER_VERSION!=echo "${_v:M[1-9].[0-9]*}" | awk -F. '{print $$1 * 10000 + $$2 * 100 + $$3;}'
++${X_}COMPILER_VERSION!=echo "${_v:M[1-9]*.[0-9]*}" | awk -F. '{print $$1 * 10000 + $$2 * 100 + $$3;}'
+ .endif
+ .undef _v
+ .endif
+--- share/mk/bsd.linker.mk.orig
++++ share/mk/bsd.linker.mk
+@@ -55,7 +55,7 @@
+ .endif
+ .if ${_ld_version:[1..2]} == "GNU ld"
+ ${X_}LINKER_TYPE= bfd
+-_v= ${_ld_version:M[1-9].[0-9]*:[1]}
++_v= ${_ld_version:M[1-9]*.[0-9]*:[1]}
+ .elif ${_ld_version:[1]} == "LLD"
+ ${X_}LINKER_TYPE= lld
+ _v= ${_ld_version:[2]}
+@@ -64,7 +64,7 @@
+ ${X_}LINKER_TYPE= bfd
+ _v= 2.17.50
+ .endif
+-${X_}LINKER_VERSION!= echo "${_v:M[1-9].[0-9]*}" | \
++${X_}LINKER_VERSION!= echo "${_v:M[1-9]*.[0-9]*}" | \
+ awk -F. '{print $$1 * 10000 + $$2 * 100 + $$3;}'
+ .undef _ld_version
+ .undef _v
diff --git a/share/security/patches/EN-20:10/build.11.patch.asc b/share/security/patches/EN-20:10/build.11.patch.asc
new file mode 100644
index 0000000000..60aa4ac085
--- /dev/null
+++ b/share/security/patches/EN-20:10/build.11.patch.asc
@@ -0,0 +1,18 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQKTBAABCgB9FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAl664A5fFIAAAAAALgAo
+aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZD
+MEU4NzhBRTVBRkU3ODgwMjhENjM1NUQzOTc5MkY0OUVBN0U1QzIACgkQ05eS9J6n
+5cK1cg/8DXuUVvVWSFUqO+GP7+Nz/S1HTP0sFYirRzKgKtkuCdu6+3KIpTiYAUCI
+igWBSfCRnLX2YS8otVWWvMqhiggmo2y5z8Wb4nuEugdpGy8wDPiJUO9QgfjbBvgb
+LJFb05UxKXNJXCsMn6n+GEcA/Mt0RoMTRjKrBWkFf8ePXkWYdfKJQSX2M9n9QYQZ
+nfL6SqPufPHk3wCAJLNq8i36SPI/6yrCtEHscx90lnD+a06Ou5LZ5GYcJ+0y60SR
++TTsXcESIiwkGbyhocSAs5D2+m/mOzgy5ILElNB4y6LAYslPtc2CpYO+pvc8l989
+BM6YolAX55pIw1mTn51TLiDMBIOrBnzKrqHKTHnScuG+qyen721zBvV1ocdO+Knz
+elVLgWIxZ2UNbx6VcCQ7LXx2rJ/2RQuPY2yr5eFzGaxQmI39f/yWPx2/074DwMwk
+RuVMnX4p8O9LIu2oSXNpYl37ebaQ9p6r/+xop/peId39rrMOqDkv1U/IFqxNOEjf
+V4dgx/pYZ9riZnpguIjBRDnCzVbl7zBYl/akTxQ2Ch/gOfI8lgqlB+yEDyv5OFfN
+QO5Ciy/9j2yLn/HB885haDdPqrmaeOXzyNoeD65qDFTYm7Pil2TGKeQ+yNviSo68
+Bor061/uEF9ADmL6FRRkIBxdfX9VfCuUG2KslPL25YH/VjnSe2k=
+=m6X7
+-----END PGP SIGNATURE-----
diff --git a/share/security/patches/EN-20:10/build.12.patch b/share/security/patches/EN-20:10/build.12.patch
new file mode 100644
index 0000000000..5d278d242c
--- /dev/null
+++ b/share/security/patches/EN-20:10/build.12.patch
@@ -0,0 +1,31 @@
+--- share/mk/bsd.compiler.mk.orig
++++ share/mk/bsd.compiler.mk
+@@ -168,7 +168,7 @@
+ . endif
+ .endif
+ .if !defined(${X_}COMPILER_VERSION)
+-${X_}COMPILER_VERSION!=echo "${_v:M[1-9].[0-9]*}" | awk -F. '{print $$1 * 10000 + $$2 * 100 + $$3;}'
++${X_}COMPILER_VERSION!=echo "${_v:M[1-9]*.[0-9]*}" | awk -F. '{print $$1 * 10000 + $$2 * 100 + $$3;}'
+ .endif
+ .undef _v
+ .endif
+--- share/mk/bsd.linker.mk.orig
++++ share/mk/bsd.linker.mk
+@@ -59,7 +59,7 @@
+ .if ${_ld_version:[1..2]} == "GNU ld"
+ ${X_}LINKER_TYPE= bfd
+ ${X_}LINKER_FREEBSD_VERSION= 0
+-_v= ${_ld_version:M[1-9].[0-9]*:[1]}
++_v= ${_ld_version:M[1-9]*.[0-9]*:[1]}
+ .elif ${_ld_version:[1]} == "LLD"
+ ${X_}LINKER_TYPE= lld
+ _v= ${_ld_version:[2]}
+@@ -71,7 +71,7 @@
+ ${X_}LINKER_TYPE= bfd
+ _v= 2.17.50
+ .endif
+-${X_}LINKER_VERSION!= echo "${_v:M[1-9].[0-9]*}" | \
++${X_}LINKER_VERSION!= echo "${_v:M[1-9]*.[0-9]*}" | \
+ awk -F. '{print $$1 * 10000 + $$2 * 100 + $$3;}'
+ .undef _ld_version
+ .undef _v
diff --git a/share/security/patches/EN-20:10/build.12.patch.asc b/share/security/patches/EN-20:10/build.12.patch.asc
new file mode 100644
index 0000000000..d6b82270e1
--- /dev/null
+++ b/share/security/patches/EN-20:10/build.12.patch.asc
@@ -0,0 +1,18 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQKTBAABCgB9FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAl664A5fFIAAAAAALgAo
+aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZD
+MEU4NzhBRTVBRkU3ODgwMjhENjM1NUQzOTc5MkY0OUVBN0U1QzIACgkQ05eS9J6n
+5cKV8w/+IAon7mFVyRP8oTn+3/tw9yfAzJEuOHYr4Tdbrrx0jtR/Om7BdQ8Q/cd9
+L8e6XcEKdlY9ZN/6duawFRQkFeGZDrgqoxrPm3/KkV4ri2oDpVwQj0GAgAJlFxRz
+o9jT9KbhMhPkzBVl1GB7+dfdf34AwrhOYIPmnQyxrSCFiyrPq1MMPVEzNcyR41uk
+XvqRfX++MBYPUyL6BhjqjcuGBZlfuPyaiXRMGsjHsHJVVVzfOvT0C3D4Yrpqc/++
+rVwWd4Wc9kMF5SMS4njW1H716Vm/aTjOaENbAA6341Itb1Qmq/IHyaghNSlJvOMG
+9suDjBSXkvwVzegtc/tUEDquRLWz72wqH+Cs6zFX+5oQX8DLeN31eibRlF87J8pK
+XehhFQaVzlxQoHwS2+QCluSesYRJXjjHupZOdXpZBH/yN14c9T0ArLghf32WONhW
+c4SuA+AVZqTbGx+yj1anJ501ppjED4NRPwdjJ7ASsQvgG7CRGeP1TbkTI+HI9cQW
+p3TjLjGstHKHtWz9/JSq48swDir6HiyJztUpheS8EaQ5Gydi6JBS21XOhVM9yMMb
+mfpXIRFo+XqlvIkzkzhOZ2cIzJ8PfNuOio+PwEZTGS692cIT/Vm6sTXfF1jKFN1o
+QlDyj+uv5GRAqo5ioXNdMWQKgImbglxo2JCgqi9yUjBdtdNRDfc=
+=0/gQ
+-----END PGP SIGNATURE-----
diff --git a/share/security/patches/SA-20:12/libalias.patch b/share/security/patches/SA-20:12/libalias.patch
new file mode 100644
index 0000000000..1d7314190b
--- /dev/null
+++ b/share/security/patches/SA-20:12/libalias.patch
@@ -0,0 +1,102 @@
+--- sys/netinet/libalias/alias.c.orig
++++ sys/netinet/libalias/alias.c
+@@ -442,10 +442,15 @@
+ static int
+ IcmpAliasIn(struct libalias *la, struct ip *pip)
+ {
+- int iresult;
+ struct icmp *ic;
++ int dlen, iresult;
+
+ LIBALIAS_LOCK_ASSERT(la);
++
++ dlen = ntohs(pip->ip_len) - (pip->ip_hl << 2);
++ if (dlen < ICMP_MINLEN)
++ return (PKT_ALIAS_IGNORED);
++
+ /* Return if proxy-only mode is enabled */
+ if (la->packetAliasMode & PKT_ALIAS_PROXY_ONLY)
+ return (PKT_ALIAS_OK);
+@@ -464,6 +469,9 @@
+ case ICMP_SOURCEQUENCH:
+ case ICMP_TIMXCEED:
+ case ICMP_PARAMPROB:
++ if (dlen < ICMP_ADVLENMIN ||
++ dlen < ICMP_ADVLEN(ic))
++ return (PKT_ALIAS_IGNORED);
+ iresult = IcmpAliasIn2(la, pip);
+ break;
+ case ICMP_ECHO:
+@@ -732,10 +740,17 @@
+ {
+ struct udphdr *ud;
+ struct alias_link *lnk;
++ int dlen;
+
+ LIBALIAS_LOCK_ASSERT(la);
+
++ dlen = ntohs(pip->ip_len) - (pip->ip_hl << 2);
++ if (dlen < sizeof(struct udphdr))
++ return (PKT_ALIAS_IGNORED);
++
+ ud = (struct udphdr *)ip_next(pip);
++ if (dlen < ntohs(ud->uh_ulen))
++ return (PKT_ALIAS_IGNORED);
+
+ lnk = FindUdpTcpIn(la, pip->ip_src, pip->ip_dst,
+ ud->uh_sport, ud->uh_dport,
+@@ -824,12 +839,19 @@
+ u_short dest_port;
+ u_short proxy_server_port;
+ int proxy_type;
+- int error;
++ int dlen, error;
+
+ LIBALIAS_LOCK_ASSERT(la);
+
+ /* Return if proxy-only mode is enabled and not proxyrule found.*/
++ dlen = ntohs(pip->ip_len) - (pip->ip_hl << 2);
++ if (dlen < sizeof(struct udphdr))
++ return (PKT_ALIAS_IGNORED);
++
+ ud = (struct udphdr *)ip_next(pip);
++ if (dlen < ntohs(ud->uh_ulen))
++ return (PKT_ALIAS_IGNORED);
++
+ proxy_type = ProxyCheck(la, &proxy_server_address,
+ &proxy_server_port, pip->ip_src, pip->ip_dst,
+ ud->uh_dport, pip->ip_p);
+@@ -922,8 +944,13 @@
+ {
+ struct tcphdr *tc;
+ struct alias_link *lnk;
++ int dlen;
+
+ LIBALIAS_LOCK_ASSERT(la);
++
++ dlen = ntohs(pip->ip_len) - (pip->ip_hl << 2);
++ if (dlen < sizeof(struct tcphdr))
++ return (PKT_ALIAS_IGNORED);
+ tc = (struct tcphdr *)ip_next(pip);
+
+ lnk = FindUdpTcpIn(la, pip->ip_src, pip->ip_dst,
+@@ -1042,7 +1069,7 @@
+ static int
+ TcpAliasOut(struct libalias *la, struct ip *pip, int maxpacketsize, int create)
+ {
+- int proxy_type, error;
++ int dlen, proxy_type, error;
+ u_short dest_port;
+ u_short proxy_server_port;
+ struct in_addr dest_address;
+@@ -1051,6 +1078,10 @@
+ struct alias_link *lnk;
+
+ LIBALIAS_LOCK_ASSERT(la);
++
++ dlen = ntohs(pip->ip_len) - (pip->ip_hl << 2);
++ if (dlen < sizeof(struct tcphdr))
++ return (PKT_ALIAS_IGNORED);
+ tc = (struct tcphdr *)ip_next(pip);
+
+ if (create)
diff --git a/share/security/patches/SA-20:12/libalias.patch.asc b/share/security/patches/SA-20:12/libalias.patch.asc
new file mode 100644
index 0000000000..ea6ef4a59f
--- /dev/null
+++ b/share/security/patches/SA-20:12/libalias.patch.asc
@@ -0,0 +1,18 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQKTBAABCgB9FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAl664A5fFIAAAAAALgAo
+aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZD
+MEU4NzhBRTVBRkU3ODgwMjhENjM1NUQzOTc5MkY0OUVBN0U1QzIACgkQ05eS9J6n
+5cJE6xAAgd59+RRjasSyo+Idi+R+LUEFLy+LYmQGYHyWCMdqUv/7m7hOMOT9oDBu
+QGSNpYUDaNJuEB84iiiZiAR5KLwjj25voqRxqTmLhxNbyeXgtSUxcceygHuTm17j
++4CIyjP15/aBpVIWjx8jdGwtej0RcFYvkO9RP3hQrjlm0XbPWufRXe0hLXCYC46o
+uBqQeEPQzScGMrdbc8dlkZBkT8rblUlyaqBAEqmr4ZQVhKffAmor7PCQL2819p/f
+J+x6Jww3FuF8i5IGLs1/IIC8YSwjhN/H8DX4ITpDuNxsQpBSYpcX975sNgeqCZHX
+kwY1jrkBEP4VEQp5u8LD3JIfQPwjuOzBnWa4Y6pQkT1wvsoCQL7hBcRswa8fiGJ+
+BrAsgJgLV/DriyCxs5eMbY0qQ26wFjbbzoi3aBTjc4UulySV3F760YPXgnDxgzqJ
+O67lPSKwYSi1syMcdOIJM9UiH2VsQ6RbHvQ4HH+KnNF+obyNU3uiG9M25YMTe3Bw
+1uniEMyd4R5zNoppzf3X1PDZHVqZRKTUuaBTzMbSzBi03sAW73ZcvOd1rf1XgFjO
+WdwCgJLwjLVwcobcs2PVZ8ngYlTnIcPBi7MiuXgZJ6NkMdMXlzLGWGc5q7Xq8jvB
+HH+RNXYcOGeCX/u/cGNYlWGgIsK6sl1VZN3oCiSlISYam2BCcI0=
+=1oQk
+-----END PGP SIGNATURE-----
diff --git a/share/security/patches/SA-20:13/libalias.patch b/share/security/patches/SA-20:13/libalias.patch
new file mode 100644
index 0000000000..38bed35130
--- /dev/null
+++ b/share/security/patches/SA-20:13/libalias.patch
@@ -0,0 +1,12 @@
+--- sys/netinet/libalias/alias_ftp.c.orig
++++ sys/netinet/libalias/alias_ftp.c
+@@ -754,7 +754,8 @@
+ {
+ u_short new_len;
+
+- new_len = htons(hlen + slen);
++ new_len = htons(hlen +
++ MIN(slen, maxpacketsize - hlen));
+ DifferentialChecksum(&pip->ip_sum,
+ &new_len,
+ &pip->ip_len,
diff --git a/share/security/patches/SA-20:13/libalias.patch.asc b/share/security/patches/SA-20:13/libalias.patch.asc
new file mode 100644
index 0000000000..d7eb97f52b
--- /dev/null
+++ b/share/security/patches/SA-20:13/libalias.patch.asc
@@ -0,0 +1,18 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQKTBAABCgB9FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAl664A9fFIAAAAAALgAo
+aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZD
+MEU4NzhBRTVBRkU3ODgwMjhENjM1NUQzOTc5MkY0OUVBN0U1QzIACgkQ05eS9J6n
+5cL3YRAAhnKuI7oF3fed+H1H4eI4e8uqyeeajkOJZDEquxlYEP6+HxHlgynDWKfG
+9CaM5lwnceYuLjqzEecfQNbkap4sRNSP4QjkJJJ67mK8v01++azjuOJJOu3x3uFK
+ldU/1s9vNWZvnhW88yIJIoR3OopdLfxiM4Mbj/alDOnpFXvym7z6FcKyy7FmuP+M
+AqEzHwhni4LG4sD8UrLCidOP4TTw24nokSycu7XzTaP7S/Ilyvtj4ccyI4IvNg2J
+N5AwawDEvgMU/xxJzp22TYFK496QKVFmFOO9R3Xm1gYoN+J+Ecxp5sm4aafHykFx
+zM18Uik7nENDWspIzTLpZIabwW8Zc3hBxn+diBtdPG2htD7m6KFIeJRSF7WqiFkR
+u6odCKqXOPqtoD/sKRrIGYvAhZ2fJdtvyuKdMw0kRir7cjZYPeowad8jI6hsYF1A
+pi4IR9FoDXlicoQqRO8PGhg9ULs6aVXTl22N9J4nFdPeEnrup7GEIpVy34ii3E76
+SHYNbJCU36aNLelwNoUSviPUeR1yaxy4IGqXa6ELuh04RzVz38rRsUQE1cMCNBOx
+vnee30NXLaTA3H4V3xOmo+iFodG+UGysSKABdCHz5vSfSMalt86u5c6G0DAlMBj/
+ptpBvlIlcS2kSUfq1eFpWBf7OtViF+mtncBdNYD5YcEoMOfYSjM=
+=yrxB
+-----END PGP SIGNATURE-----
diff --git a/share/security/patches/SA-20:14/sctp.patch b/share/security/patches/SA-20:14/sctp.patch
new file mode 100644
index 0000000000..43532878ed
--- /dev/null
+++ b/share/security/patches/SA-20:14/sctp.patch
@@ -0,0 +1,11 @@
+--- sys/netinet/sctp_auth.c.orig
++++ sys/netinet/sctp_auth.c
+@@ -523,7 +523,7 @@
+ } else if (new_skey->keyid == skey->keyid) {
+ /* replace the existing key */
+ /* verify this key *can* be replaced */
+- if ((skey->deactivated) && (skey->refcount > 1)) {
++ if ((skey->deactivated) || (skey->refcount > 1)) {
+ SCTPDBG(SCTP_DEBUG_AUTH1,
+ "can't replace shared key id %u\n",
+ new_skey->keyid);
diff --git a/share/security/patches/SA-20:14/sctp.patch.asc b/share/security/patches/SA-20:14/sctp.patch.asc
new file mode 100644
index 0000000000..895375e218
--- /dev/null
+++ b/share/security/patches/SA-20:14/sctp.patch.asc
@@ -0,0 +1,18 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQKTBAABCgB9FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAl664A9fFIAAAAAALgAo
+aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZD
+MEU4NzhBRTVBRkU3ODgwMjhENjM1NUQzOTc5MkY0OUVBN0U1QzIACgkQ05eS9J6n
+5cI+yw/9G0uF81zxIW5o9EmwgbvfNXWq75phJn+q8Y8qnpbJtTj9QIKkWzcCIA5C
+h9jQy/hyq5w7D6c+u0DR9qkMU2f25sooYQYDoz2KQi2rryqlJOFGhD0PVvVRWe9R
+jVztdazpxSJCs89wl25bXpFnSihFYkpg2iZpKEsStZQPkXTZcf5SnxczI8uPOlxf
+EslzFJNVcRp+jZQSX4bQ3kzkVP0873npn/CBNlRLM2Xw7xi6GO4fVgkHfgh0CsRi
+cvdXxM0bYr8RkHQAA9a5bQJQGo4Co4Fo5XFX9t8SLdN6FHuijxgXa0PDSRSTS/ek
+r3thIlKGH7pa5Zc6GDOSAV7zXfShVVZEcTezhjwDC5/Ngsy/bcHPkHWofvlpnZBY
+1r1+wTIbZHqp1fygMSa7F1+l+v6DaIUB8ScgZH/ybYJiwTAayE1oBkqDJVt2SmdN
+guGKK28GHp5SdHAtiziAdAHDCtly1qyp3g04RCo1CSCe1vsF1HlPzTPInnF81pw8
+ileE4Grq4mTuvbZb6MexX9UijlY5FAvXS75APa8KTVDBRDVQEFszZuZkfYXvYBrJ
+1HwU9K3ySePu0Dto+dRmGyOk5KgN/7NTat036+dFgADC5Ykw0VvJDUkkVpGkwMb0
+k6hyRdw1nm1eaRMAVmbrxlwJ6GeH9BX50cKLObzt9JteKjBe1oE=
+=Atod
+-----END PGP SIGNATURE-----
diff --git a/share/security/patches/SA-20:15/cryptodev.11.patch b/share/security/patches/SA-20:15/cryptodev.11.patch
new file mode 100644
index 0000000000..243dc5c1ad
--- /dev/null
+++ b/share/security/patches/SA-20:15/cryptodev.11.patch
@@ -0,0 +1,166 @@
+--- sys/opencrypto/cryptodev.c.orig
++++ sys/opencrypto/cryptodev.c
+@@ -268,6 +268,7 @@
+ struct csession {
+ TAILQ_ENTRY(csession) next;
+ u_int64_t sid;
++ volatile u_int refs;
+ u_int32_t ses;
+ struct mtx lock; /* for op submission */
+
+@@ -294,6 +295,7 @@
+ struct fcrypt {
+ TAILQ_HEAD(csessionlist, csession) csessions;
+ int sesn;
++ struct mtx lock;
+ };
+
+ static int cryptof_ioctl(struct file *, u_long, void *,
+@@ -320,8 +322,7 @@
+ };
+
+ static struct csession *csefind(struct fcrypt *, u_int);
+-static int csedelete(struct fcrypt *, struct csession *);
+-static struct csession *cseadd(struct fcrypt *, struct csession *);
++static int csedelete(struct fcrypt *, u_int);
+ static struct csession *csecreate(struct fcrypt *, u_int64_t, caddr_t,
+ u_int64_t, caddr_t, u_int64_t, u_int32_t, u_int32_t, struct enc_xform *,
+ struct auth_hash *);
+@@ -612,13 +613,9 @@
+ break;
+ case CIOCFSESSION:
+ ses = *(u_int32_t *)data;
+- cse = csefind(fcr, ses);
+- if (cse == NULL) {
++ error = csedelete(fcr, ses);
++ if (error != 0)
+ SDT_PROBE1(opencrypto, dev, ioctl, error, __LINE__);
+- return (EINVAL);
+- }
+- csedelete(fcr, cse);
+- error = csefree(cse);
+ break;
+ case CIOCCRYPT:
+ #ifdef COMPAT_FREEBSD32
+@@ -635,6 +632,7 @@
+ return (EINVAL);
+ }
+ error = cryptodev_op(cse, cop, active_cred, td);
++ (void)csefree(cse);
+ #ifdef COMPAT_FREEBSD32
+ if (error == 0 && cmd == CIOCCRYPT32)
+ crypt_op_to_32(cop, data);
+@@ -701,6 +699,7 @@
+ return (EINVAL);
+ }
+ error = cryptodev_aead(cse, caead, active_cred, td);
++ (void)csefree(cse);
+ break;
+ default:
+ error = EINVAL;
+@@ -1275,6 +1274,9 @@
+
+ while ((cse = TAILQ_FIRST(&fcr->csessions))) {
+ TAILQ_REMOVE(&fcr->csessions, cse, next);
++ KASSERT(cse->refs == 1,
++ ("%s: crypto session %p with %d refs", __func__, cse,
++ cse->refs));
+ (void)csefree(cse);
+ }
+ free(fcr, M_XDATA);
+@@ -1295,34 +1297,35 @@
+ {
+ struct csession *cse;
+
+- TAILQ_FOREACH(cse, &fcr->csessions, next)
+- if (cse->ses == ses)
++ mtx_lock(&fcr->lock);
++ TAILQ_FOREACH(cse, &fcr->csessions, next) {
++ if (cse->ses == ses) {
++ refcount_acquire(&cse->refs);
++ mtx_unlock(&fcr->lock);
+ return (cse);
++ }
++ }
++ mtx_unlock(&fcr->lock);
+ return (NULL);
+ }
+
+ static int
+-csedelete(struct fcrypt *fcr, struct csession *cse_del)
++csedelete(struct fcrypt *fcr, u_int ses)
+ {
+ struct csession *cse;
+
++ mtx_lock(&fcr->lock);
+ TAILQ_FOREACH(cse, &fcr->csessions, next) {
+- if (cse == cse_del) {
++ if (cse->ses == ses) {
+ TAILQ_REMOVE(&fcr->csessions, cse, next);
+- return (1);
++ mtx_unlock(&fcr->lock);
++ return (csefree(cse));
+ }
+ }
+- return (0);
++ mtx_unlock(&fcr->lock);
++ return (EINVAL);
+ }
+
+-static struct csession *
+-cseadd(struct fcrypt *fcr, struct csession *cse)
+-{
+- TAILQ_INSERT_TAIL(&fcr->csessions, cse, next);
+- cse->ses = fcr->sesn++;
+- return (cse);
+-}
+-
+ struct csession *
+ csecreate(struct fcrypt *fcr, u_int64_t sid, caddr_t key, u_int64_t keylen,
+ caddr_t mackey, u_int64_t mackeylen, u_int32_t cipher, u_int32_t mac,
+@@ -1334,6 +1337,7 @@
+ if (cse == NULL)
+ return NULL;
+ mtx_init(&cse->lock, "cryptodev", "crypto session lock", MTX_DEF);
++ refcount_init(&cse->refs, 1);
+ cse->key = key;
+ cse->keylen = keylen/8;
+ cse->mackey = mackey;
+@@ -1343,7 +1347,10 @@
+ cse->mac = mac;
+ cse->txform = txform;
+ cse->thash = thash;
+- cseadd(fcr, cse);
++ mtx_lock(&fcr->lock);
++ TAILQ_INSERT_TAIL(&fcr->csessions, cse, next);
++ cse->ses = fcr->sesn++;
++ mtx_unlock(&fcr->lock);
+ return (cse);
+ }
+
+@@ -1352,6 +1359,8 @@
+ {
+ int error;
+
++ if (!refcount_release(&cse->refs))
++ return (0);
+ error = crypto_freesession(cse->sid);
+ mtx_destroy(&cse->lock);
+ if (cse->key)
+@@ -1389,13 +1398,14 @@
+
+ switch (cmd) {
+ case CRIOGET:
+- fcr = malloc(sizeof(struct fcrypt), M_XDATA, M_WAITOK);
++ fcr = malloc(sizeof(struct fcrypt), M_XDATA, M_WAITOK | M_ZERO);
+ TAILQ_INIT(&fcr->csessions);
+- fcr->sesn = 0;
++ mtx_init(&fcr->lock, "fcrypt", NULL, MTX_DEF);
+
+ error = falloc(td, &f, &fd, 0);
+
+ if (error) {
++ mtx_destroy(&fcr->lock);
+ free(fcr, M_XDATA);
+ return (error);
+ }
diff --git a/share/security/patches/SA-20:15/cryptodev.11.patch.asc b/share/security/patches/SA-20:15/cryptodev.11.patch.asc
new file mode 100644
index 0000000000..ef59c06b5a
--- /dev/null
+++ b/share/security/patches/SA-20:15/cryptodev.11.patch.asc
@@ -0,0 +1,18 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQKTBAABCgB9FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAl664A9fFIAAAAAALgAo
+aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZD
+MEU4NzhBRTVBRkU3ODgwMjhENjM1NUQzOTc5MkY0OUVBN0U1QzIACgkQ05eS9J6n
+5cJp/Q/6Aik1+ye69Sgz3v1HwCBut/CJNoQglaftRNE7kaIFw3qDWLk8qOpI3s1f
+3Q6m9taVd29KhzAP4VmPf/iTUGGHHiLdA3tmgpK0WK6/HV9v/Y5GhLtObmysYldi
+d9jrF0xIEqRhvX173Ly1zFonkUqZ+fWwgTkmwLTGOWh0cc7gpAR+NBmdmnand1tw
+olJDc2dNCAIugEp+tbg0Imd3j1ZF35PJPnWwTNviigoCFIGknS7yo6CPL67LaIjN
+1Ogz0ve4885JvdSSbJFoMKEx1ehiYxU/FBvkz6pTHSDxLAooNgXO4rWG+YUN7oJs
+31/kWYvtWWSkif3uDAJmQKeXudg05ukA0bksBAk/1pdwxkD2GNeAzm3mwKkPV8LX
+tAMepLKg8GEUeG+9RX/zk6913H4AJJZ4q9eyDo+Dd/KEEMlVDmvtns7cCPQvUoNA
+KjEaCZvNCil21khXAoWTI0Yy5os5TG620a+22AjDIiUIHYoj57FeMU/6YQD4J/Si
+7ZdlB/5o9zrcq/OF7bxf7dM+9S93Nr0gMPlzZd2DFG4h2XUnpDQES1rT5v5VD5Pf
+vcQA9KRMzPI35ZUieGKAqjOJ3vcSnaKChjbyXMJoz8ztn7Xf+wSd5KkSIq7ansfW
+7SVtDBN0EFdTcrnHu5G/W2L3Ipw67i6fHdv5n3mAj/dyYjIdLHQ=
+=r7Z1
+-----END PGP SIGNATURE-----
diff --git a/share/security/patches/SA-20:15/cryptodev.12.patch b/share/security/patches/SA-20:15/cryptodev.12.patch
new file mode 100644
index 0000000000..5035f1e093
--- /dev/null
+++ b/share/security/patches/SA-20:15/cryptodev.12.patch
@@ -0,0 +1,167 @@
+--- sys/opencrypto/cryptodev.c.orig
++++ sys/opencrypto/cryptodev.c
+@@ -266,6 +266,7 @@
+ struct csession {
+ TAILQ_ENTRY(csession) next;
+ crypto_session_t cses;
++ volatile u_int refs;
+ u_int32_t ses;
+ struct mtx lock; /* for op submission */
+
+@@ -292,6 +293,7 @@
+ struct fcrypt {
+ TAILQ_HEAD(csessionlist, csession) csessions;
+ int sesn;
++ struct mtx lock;
+ };
+
+ static struct timeval warninterval = { .tv_sec = 60, .tv_usec = 0 };
+@@ -323,8 +325,7 @@
+ };
+
+ static struct csession *csefind(struct fcrypt *, u_int);
+-static int csedelete(struct fcrypt *, struct csession *);
+-static struct csession *cseadd(struct fcrypt *, struct csession *);
++static bool csedelete(struct fcrypt *, u_int);
+ static struct csession *csecreate(struct fcrypt *, crypto_session_t, caddr_t,
+ u_int64_t, caddr_t, u_int64_t, u_int32_t, u_int32_t, struct enc_xform *,
+ struct auth_hash *);
+@@ -685,13 +686,10 @@
+ break;
+ case CIOCFSESSION:
+ ses = *(u_int32_t *)data;
+- cse = csefind(fcr, ses);
+- if (cse == NULL) {
++ if (!csedelete(fcr, ses)) {
+ SDT_PROBE1(opencrypto, dev, ioctl, error, __LINE__);
+ return (EINVAL);
+ }
+- csedelete(fcr, cse);
+- csefree(cse);
+ break;
+ case CIOCCRYPT:
+ #ifdef COMPAT_FREEBSD32
+@@ -708,6 +706,7 @@
+ return (EINVAL);
+ }
+ error = cryptodev_op(cse, cop, active_cred, td);
++ csefree(cse);
+ #ifdef COMPAT_FREEBSD32
+ if (error == 0 && cmd == CIOCCRYPT32)
+ crypt_op_to_32(cop, data);
+@@ -774,6 +773,7 @@
+ return (EINVAL);
+ }
+ error = cryptodev_aead(cse, caead, active_cred, td);
++ csefree(cse);
+ break;
+ default:
+ error = EINVAL;
+@@ -1349,6 +1349,9 @@
+
+ while ((cse = TAILQ_FIRST(&fcr->csessions))) {
+ TAILQ_REMOVE(&fcr->csessions, cse, next);
++ KASSERT(cse->refs == 1,
++ ("%s: crypto session %p with %d refs", __func__, cse,
++ cse->refs));
+ csefree(cse);
+ }
+ free(fcr, M_XDATA);
+@@ -1369,34 +1372,36 @@
+ {
+ struct csession *cse;
+
+- TAILQ_FOREACH(cse, &fcr->csessions, next)
+- if (cse->ses == ses)
++ mtx_lock(&fcr->lock);
++ TAILQ_FOREACH(cse, &fcr->csessions, next) {
++ if (cse->ses == ses) {
++ refcount_acquire(&cse->refs);
++ mtx_unlock(&fcr->lock);
+ return (cse);
++ }
++ }
++ mtx_unlock(&fcr->lock);
+ return (NULL);
+ }
+
+-static int
+-csedelete(struct fcrypt *fcr, struct csession *cse_del)
++static bool
++csedelete(struct fcrypt *fcr, u_int ses)
+ {
+ struct csession *cse;
+
++ mtx_lock(&fcr->lock);
+ TAILQ_FOREACH(cse, &fcr->csessions, next) {
+- if (cse == cse_del) {
++ if (cse->ses == ses) {
+ TAILQ_REMOVE(&fcr->csessions, cse, next);
+- return (1);
++ mtx_unlock(&fcr->lock);
++ csefree(cse);
++ return (true);
+ }
+ }
+- return (0);
++ mtx_unlock(&fcr->lock);
++ return (false);
+ }
+
+-static struct csession *
+-cseadd(struct fcrypt *fcr, struct csession *cse)
+-{
+- TAILQ_INSERT_TAIL(&fcr->csessions, cse, next);
+- cse->ses = fcr->sesn++;
+- return (cse);
+-}
+-
+ struct csession *
+ csecreate(struct fcrypt *fcr, crypto_session_t cses, caddr_t key, u_int64_t keylen,
+ caddr_t mackey, u_int64_t mackeylen, u_int32_t cipher, u_int32_t mac,
+@@ -1408,6 +1413,7 @@
+ if (cse == NULL)
+ return NULL;
+ mtx_init(&cse->lock, "cryptodev", "crypto session lock", MTX_DEF);
++ refcount_init(&cse->refs, 1);
+ cse->key = key;
+ cse->keylen = keylen/8;
+ cse->mackey = mackey;
+@@ -1417,7 +1423,10 @@
+ cse->mac = mac;
+ cse->txform = txform;
+ cse->thash = thash;
+- cseadd(fcr, cse);
++ mtx_lock(&fcr->lock);
++ TAILQ_INSERT_TAIL(&fcr->csessions, cse, next);
++ cse->ses = fcr->sesn++;
++ mtx_unlock(&fcr->lock);
+ return (cse);
+ }
+
+@@ -1425,6 +1434,8 @@
+ csefree(struct csession *cse)
+ {
+
++ if (!refcount_release(&cse->refs))
++ return;
+ crypto_freesession(cse->cses);
+ mtx_destroy(&cse->lock);
+ if (cse->key)
+@@ -1461,13 +1472,14 @@
+
+ switch (cmd) {
+ case CRIOGET:
+- fcr = malloc(sizeof(struct fcrypt), M_XDATA, M_WAITOK);
++ fcr = malloc(sizeof(struct fcrypt), M_XDATA, M_WAITOK | M_ZERO);
+ TAILQ_INIT(&fcr->csessions);
+- fcr->sesn = 0;
++ mtx_init(&fcr->lock, "fcrypt", NULL, MTX_DEF);
+
+ error = falloc(td, &f, &fd, 0);
+
+ if (error) {
++ mtx_destroy(&fcr->lock);
+ free(fcr, M_XDATA);
+ return (error);
+ }
diff --git a/share/security/patches/SA-20:15/cryptodev.12.patch.asc b/share/security/patches/SA-20:15/cryptodev.12.patch.asc
new file mode 100644
index 0000000000..0a6f3941fc
--- /dev/null
+++ b/share/security/patches/SA-20:15/cryptodev.12.patch.asc
@@ -0,0 +1,18 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQKTBAABCgB9FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAl664A9fFIAAAAAALgAo
+aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZD
+MEU4NzhBRTVBRkU3ODgwMjhENjM1NUQzOTc5MkY0OUVBN0U1QzIACgkQ05eS9J6n
+5cItUg/9GXYa9/yDoRW9fmReyZM8jEmYhG0CAzkoHR7In5uXKTkcNmJRN6EeO0n6
+P7WvAei7Xyt/Uf4gwdi8SJz3rklJmF7kRw/w3IAa1+fo3GwglO97E4VEjuttJnZh
+RgLuj7RAtaItKmKYERos0W32poao93zc1+mDQdnPVXwY0Krd61WWWeCpp3Qvy7GQ
+C4EqLyrPrwLXjIv99sZVSWm5zwW63ZyRYwh3IyB2TyIAcBSaU+12RMdpL3GpdsUu
+7fr9RlaAvC1yzCcrqFCojP5UE2AW+GSFs1NX/fj+9yP566YuDfqZDFGYeVsFAWLu
+tkzXavVwbot8zvVixnRLZoXrX5rvI1LwWx8Kk4LQx9FyJ4wX5alHe0VrnZSPAlyn
+k9eck9VF+VzFcSfPtMn0QJUy+UEiI58AEUiY0c2+6cJa3/3vGUDSQA9+QnnRc+iE
+a6xVBxAQpx4ZAO7ea3xZqN38FKtR8tFk1cuyl4QfgGf7YRQCmMiI+QMu40m8jGG+
+kn78tbKAzGcoayH+INlmKxpdTH2j95xYqB+TC/Eqhlj+njsDjezkpIwn775hUuH/
+BkAi4Pf6j2vdsVDm+w57hnIBQ4FtHOn1Le5e5ajTz4StGpTzohiav0bg4EQLq6kQ
+sX8IfGi3MibhMkBu9wHv2MMeCrA31anhGAFDjVo/F2JkYbttJhs=
+=1ToN
+-----END PGP SIGNATURE-----
diff --git a/share/security/patches/SA-20:16/cryptodev.patch b/share/security/patches/SA-20:16/cryptodev.patch
new file mode 100644
index 0000000000..d514c90979
--- /dev/null
+++ b/share/security/patches/SA-20:16/cryptodev.patch
@@ -0,0 +1,13 @@
+--- sys/opencrypto/cryptodev.c.orig
++++ sys/opencrypto/cryptodev.c
+@@ -585,8 +585,8 @@
+ if (thash) {
+ cria.cri_alg = thash->type;
+ cria.cri_klen = sop->mackeylen * 8;
+- if (thash->keysize != 0 &&
+- sop->mackeylen > thash->keysize) {
++ if (sop->mackeylen > thash->keysize ||
++ sop->mackeylen < 0) {
+ CRYPTDEB("invalid mac key length");
+ error = EINVAL;
+ SDT_PROBE1(opencrypto, dev, ioctl, error,
diff --git a/share/security/patches/SA-20:16/cryptodev.patch.asc b/share/security/patches/SA-20:16/cryptodev.patch.asc
new file mode 100644
index 0000000000..9525e1df4a
--- /dev/null
+++ b/share/security/patches/SA-20:16/cryptodev.patch.asc
@@ -0,0 +1,18 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQKTBAABCgB9FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAl664A9fFIAAAAAALgAo
+aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZD
+MEU4NzhBRTVBRkU3ODgwMjhENjM1NUQzOTc5MkY0OUVBN0U1QzIACgkQ05eS9J6n
+5cLSyg//U3VUulGkSepGhmQDqg2CHHIUorPXT2vmR46o1mGKvhaoLle7zAx3qhqc
+NU/Mf9XpGfqsLRXu71NXzCgK8doBSHb0xmAXuIUKC72kYEQ6wUtzxg1+fu9vUxQD
+P85Yfm0ZIZj0dDeD7unojl6rtVQDVLzobeJeAoQnIT0tQTNujqrVn/MFqd0jtfOs
+N1VHctqoaYRgp5noMRcG5T8ZTQCNfvz2SWLgZN7/xmQf+2+CHMr80TW5GchYacUu
+QSexwO1Jk/VyiowCkQ3ck/coFzZ60NQVMEOfFqx0qwDC1UlhiLA3YlQVFtf730pY
+sohPlPTGBHjoIRuQqEBriW3ajY6XwYRoI5Eb+TAWHPE1UYbDYYceT0rBk7nbAJdf
+AM2IBqv3wDQbC5hU1hRT1tVRmuMtayvpj0tOxUbNAF2lWjRIU6E28rz3vZPdYCLn
+qPuQPN8SJC4Eh+A2caT4N+A6Vy/TpQHsoSRZs3MXA0NbYGZvSxlk5IL+5kbEomZm
+Qbqlw4RuW5KldpSkvLCIeJ1wfHhglRhE8YQuGnVh8zWjpVH9m874X4P2HYYHGCpA
+5cI/l7iMWPL7u+covJzMEl0+RfPE+FrFbPykJ3Uxf5dLLMcTSEOSNmlq2bqoFIGI
+IrOzx4PVPYw6pHhWC7T7pFjX01Lw2OgvRW+c76VTdkesVZyDLsM=
+=tX1Z
+-----END PGP SIGNATURE-----
diff --git a/share/xml/advisories.xml b/share/xml/advisories.xml
index 6147080510..882a78d1d4 100644
--- a/share/xml/advisories.xml
+++ b/share/xml/advisories.xml
@@ -7,6 +7,35 @@
2020
+
+ 5
+
+
+ 12
+
+
+ FreeBSD-SA-20:16.cryptodev
+
+
+
+ FreeBSD-SA-20:15.cryptodev
+
+
+
+ FreeBSD-SA-20:14.sctp
+
+
+
+ FreeBSD-SA-20:13.libalias
+
+
+
+ FreeBSD-SA-20:12.libalias
+
+
+
+
+
4
diff --git a/share/xml/notices.xml b/share/xml/notices.xml
index 8c3aa1131e..8fd565e083 100644
--- a/share/xml/notices.xml
+++ b/share/xml/notices.xml
@@ -7,6 +7,27 @@
2020
+
+ 5
+
+
+ 12
+
+
+ FreeBSD-EN-20:10.build
+
+
+
+ FreeBSD-EN-20:09.igb
+
+
+
+ FreeBSD-EN-20:08.tzdata
+
+
+
+
+
4