Dizzy 1.7.1 additions
cover Dizzy 1.7.1 additions
please consider this for inclusion for 1.7.1
Many security fixes and kernel update.
The following changes since commit f4d9d7bc206aaf30ea5c72675df139425a2c8d90:
lbdrm: fix build issue. (2014-12-27 08:43:41 -0800)
are available in the git repository at:
git://git.yoctoproject.org/poky-contrib akuster/dizzy_1_7_1
http://git.yoctoproject.org/cgit.cgi//log/?h=akuster/dizzy_1_7_1
Armin Kuster (1):
binutils: several security fixes
Bruce Ashfield (6):
linux-yocto/3.10: 8250/8250_dw: fix compile failure due to
stable/Yocto conflict
linux-yocto/3.10: update to v3.10.59
linux-yocto/3.10: update to v3.10.62
linux-yocto/3.14: update to v3.14.24
linux-yocto/3.14: update to 3.14.26, integrate ltsi and -rt updates
lttng-modules: fix mm_compaction_isolate_template build
Jackie Huang (1):
packagegroup-self-hosted: add git-perltools
Otavio Salvador (1):
sysvinit-inittab: Disable the carrier detect requirement for serial
consoles
Richard Purdie (2):
report-error: Handle the case no logfile exists
image: Avoid race over directory creation
Sona Sarmadi (1):
bind: fix for CVE-2014-8500
meta/classes/image.bbclass | 1 + meta/classes/report-error.bbclass | 9 +- .../bind/bind/bind9_9_5-CVE-2014-8500.patch | 990 +++++++++++++++++++++ meta/recipes-connectivity/bind/bind_9.9.5.bb | 1 + .../packagegroups/packagegroup-self-hosted.bb | 1 + .../sysvinit/sysvinit-inittab_2.88dsf.bb | 2 +- meta/recipes-devtools/binutils/binutils-2.24.inc | 8 + .../binutils/binutils/binutils_CVE-2014-8484.patch | 67 ++ .../binutils/binutils/binutils_CVE-2014-8485.patch | 102 +++ .../binutils/binutils/binutils_CVE-2014-8501.patch | 60 ++ .../binutils/binutils/binutils_CVE-2014-8502.patch | 89 ++ .../binutils/binutils_CVE-2014-8502_1.patch | 523 +++++++++++ .../binutils/binutils/binutils_CVE-2014-8503.patch | 47 + .../binutils/binutils/binutils_CVE-2014-8504.patch | 75 ++ .../binutils/binutils/binutils_CVE-2014-8737.patch | 177 ++++ meta/recipes-kernel/linux/linux-yocto-rt_3.10.bb | 8 +- meta/recipes-kernel/linux/linux-yocto-rt_3.14.bb | 8 +- meta/recipes-kernel/linux/linux-yocto-tiny_3.10.bb | 6 +- meta/recipes-kernel/linux/linux-yocto-tiny_3.14.bb | 6 +- meta/recipes-kernel/linux/linux-yocto_3.10.bb | 18 +- meta/recipes-kernel/linux/linux-yocto_3.14.bb | 18 +- ...-fix-mm_compaction_isolate_template-build.patch | 41 + meta/recipes-kernel/lttng/lttng-modules_2.5.0.bb | 1 + 23 files changed, 2222 insertions(+), 36 deletions(-) create mode 100644 meta/recipes-connectivity/bind/bind/bind9_9_5-CVE-2014-8500.patch create mode 100644 meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8484.patch create mode 100644 meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8485.patch create mode 100644 meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8501.patch create mode 100644 meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8502.patch create mode 100644 meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8502_1.patch create mode 100644 meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8503.patch create mode 100644 meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8504.patch create mode 100644 meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8737.patch create mode 100644 meta/recipes-kernel/lttng/lttng-modules/compaction-fix-mm_compaction_isolate_template-build.patch
Signature · 1 line
1.9.1
PATCH 1/12 binutils: several security fixes
CVE-2014-8484
CVE-2014-8485
CVE-2014-8501
CVE-2014-8502
CVE-2014-8503
CVE-2014-8504
CVE-2014-8737
and one supporting patch.
[Yocto # 7084]
(From OE-Core rev: 859fb4d9ec6974be9ce755e4ffefd9b199f3604c)
--- meta/recipes-devtools/binutils/binutils-2.24.inc | 8 + .../binutils/binutils/binutils_CVE-2014-8484.patch | 67 +++ .../binutils/binutils/binutils_CVE-2014-8485.patch | 102 ++++ .../binutils/binutils/binutils_CVE-2014-8501.patch | 60 +++ .../binutils/binutils/binutils_CVE-2014-8502.patch | 89 ++++ .../binutils/binutils_CVE-2014-8502_1.patch | 523 +++++++++++++++++++++ .../binutils/binutils/binutils_CVE-2014-8503.patch | 47 ++ .../binutils/binutils/binutils_CVE-2014-8504.patch | 75 +++ .../binutils/binutils/binutils_CVE-2014-8737.patch | 177 +++++++ 9 files changed, 1148 insertions(+) create mode 100644 meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8484.patch create mode 100644 meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8485.patch create mode 100644 meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8501.patch create mode 100644 meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8502.patch create mode 100644 meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8502_1.patch create mode 100644 meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8503.patch create mode 100644 meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8504.patch create mode 100644 meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8737.patch
meta/recipes-devtools/binutils/binutils-2.24.inc +8 -0
@@ -32,6 +32,14 @@ SRC_URI = "\ file://replace_macros_with_static_inline.patch \ file://0001-Fix-MMIX-build-breakage-from-bfd_set_section_vma-cha.patch \ file://binutils-uninitialised-warning.patch \ + file://binutils_CVE-2014-8484.patch \ + file://binutils_CVE-2014-8485.patch \ + file://binutils_CVE-2014-8501.patch \ + file://binutils_CVE-2014-8502_1.patch \ + file://binutils_CVE-2014-8502.patch \ + file://binutils_CVE-2014-8503.patch \ + file://binutils_CVE-2014-8504.patch \ + file://binutils_CVE-2014-8737.patch \ " SRC_URI[md5sum] = "e0f71a7b2ddab0f8612336ac81d9636b"
meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8484.patch new file +67 -0
67 lines not on this page · raw message
meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8485.patch new file +102 -0
102 lines not on this page · raw message
meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8501.patch new file +60 -0
60 lines not on this page · raw message
meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8502.patch new file +89 -0
89 lines not on this page · raw message
meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8502_1.patch new file +523 -0
523 lines not on this page · raw message
meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8503.patch new file +47 -0
47 lines not on this page · raw message
meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8504.patch new file +75 -0
75 lines not on this page · raw message
meta/recipes-devtools/binutils/binutils/binutils_CVE-2014-8737.patch new file +177 -0
177 lines not on this page · raw message
Signature · 1 line
1.9.1
PATCH 2/12 sysvinit-inittab: Disable the carrier detect requirement for serial consoles
From: Otavio Salvador <[email protected]>
This aligns the params of getty with the ones used in Debian. From the getty(8) manpage:
,----[ getty(8) manpage ]
| -L, --local-line | | Force the line to be a local line with no need for carrier | detect. This can be useful when you have a locally attached | terminal where the serial line does not set the carrier detect | signal.
`----
(From OE-Core rev: a899c362be71cb7b94bd318c57702446b017005c)
--- meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb +1 -1
@@ -23,7 +23,7 @@ do_install() { do j=`echo ${i} | sed s/\;/\ /g` label=`echo ${i} | sed -e 's/^.*;tty//' -e 's/;.*//'` - echo "$label:12345:respawn:${base_sbindir}/getty ${j}" >> ${D}${sysconfdir}/inittab + echo "$label:12345:respawn:${base_sbindir}/getty -L ${j}" >> ${D}${sysconfdir}/inittab done if [ "${USE_VT}" = "1" ]; then
Signature · 1 line
1.9.1
PATCH 3/12 report-error: Handle the case no logfile exists
In reply to Armin KusterFrom: Richard Purdie <[email protected]>
If the task fails early, no error log may exist. Currently we crash in that case, this handles the situation more gracefully.
(From OE-Core rev: 1e6bfcab47f532677f87683ba2f5e5fb905e9ba5)
--- meta/classes/report-error.bbclass | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)
meta/classes/report-error.bbclass +6 -3
@@ -44,11 +44,14 @@ python errorreport_handler () { task = e.task taskdata={} log = e.data.getVar('BB_LOGFILE', True) - logFile = open(log, 'r') taskdata['package'] = e.data.expand("${PF}") taskdata['task'] = task - taskdata['log'] = logFile.read() - logFile.close() + if log: + logFile = open(log, 'r') + taskdata['log'] = logFile.read() + logFile.close() + else: + taskdata['log'] = "No Log" jsondata = json.loads(errorreport_getdata(e)) jsondata['failures'].append(taskdata) errorreport_savedata(e, jsondata, "error-report.txt")
Signature · 1 line
1.9.1
PATCH 4/12 image: Avoid race over directory creation
In reply to Armin KusterFrom: Richard Purdie <[email protected]>
There is a race over the do_package_qa task and the do_rootfs task since rootfs recreates a directory. This patch disables the task (which isn't used for images) to avoid the race:
NOTE: recipe core-image-minimal-1.0-r0: task do_package_qa: Started
NOTE: recipe core-image-minimal-1.0-r0: task do_rootfs: Started
ERROR: Build of do_package_qa failed
ERROR: Traceback (most recent call last):
File "/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-mips/build/bitbake/lib/bb/build.py", line 497, in exec_task
return _exec_task(fn, task, d, quieterr)
File "/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-mips/build/bitbake/lib/bb/build.py", line 440, in _exec_task
exec_func(func, localdata)
File "/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-mips/build/bitbake/lib/bb/build.py", line 212, in exec_func
exec_func_python(func, d, runfile, cwd=adir)
File "/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-mips/build/bitbake/lib/bb/build.py", line 237, in exec_func_python
os.chdir(cwd)
OSError: [Errno 2] No such file or directory: '/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-mips/build/build/tmp/work/qemumips-poky-linux/core-image-minimal/1.0-r0/core-image-minimal-1.0'
(From OE-Core rev: 0550d112ad9c2ca9f8167dcae35200210923f2c5)
--- meta/classes/image.bbclass | 1 + 1 file changed, 1 insertion(+)
meta/classes/image.bbclass +1 -0
@@ -410,6 +410,7 @@ do_compile[noexec] = "1" do_install[noexec] = "1" do_populate_sysroot[noexec] = "1" do_package[noexec] = "1" +do_package_qa[noexec] = "1" do_packagedata[noexec] = "1" do_package_write_ipk[noexec] = "1" do_package_write_deb[noexec] = "1"
Signature · 1 line
1.9.1
PATCH 5/12 linux-yocto/3.10: 8250/8250_dw: fix compile failure due to stable/Yocto conflict
In reply to Armin KusterFrom: Bruce Ashfield <[email protected]>
Updating the SRCREVs for the following fix:
8250/8250_dw: fix compile failure due to stable/Yocto conflict
As of merge 60a9d9fc565e4503dbb8705803e83d906afc4ad2, "Merge tag 'v3.10.48' into standard/base" the 8250_dw.c fails to compile due to an undeclared variable.
This happens because stable brought in:
-------------------------
commit 6d5e79331417886196cb3a733bdb6645ba85bc42
Author: Tim Kryger <[email protected]>
Date: Tue Oct 1 10:18:08 2013 -0700
serial: 8250_dw: Improve unwritable LCR workaround
commit c49436b657d0a56a6ad90d14a7c3041add7cf64d upstream.
[...]
[wangnan: backport to 3.10.43:
- adjust context
- remove unneeded local var]
------------------------
...which deletes the p->private_data declaration since it became unused at that point, however in Yocto, we also have this:
-----------------------
commit 0e02b050c3cafbcbf9952125089a27e02d6ecea9
Author: David Daney <[email protected]>
Date: Wed Jun 19 20:37:27 2013 +0000
tty/8250_dw: Add support for OCTEON UARTS.
[...]
-----------------------
...which _adds_ another user of the p->private_data.
Here we restore the declaration in order that 8250_dw compiles.
(From OE-Core rev: 4b4d1f38ea54ef8545e726ac9e181da08a2bad05)
--- meta/recipes-kernel/linux/linux-yocto-rt_3.10.bb | 4 ++-- meta/recipes-kernel/linux/linux-yocto-tiny_3.10.bb | 2 +- meta/recipes-kernel/linux/linux-yocto_3.10.bb | 14 +++++++------- 3 files changed, 10 insertions(+), 10 deletions(-)
meta/recipes-kernel/linux/linux-yocto-rt_3.10.bb +2 -2
@@ -3,8 +3,8 @@ KBRANCH_qemuppc ?= "standard/preempt-rt/qemuppc" require recipes-kernel/linux/linux-yocto.inc -SRCREV_machine ?= "0abce5181274dbf37788ab8d2c62e135defd9956" -SRCREV_machine_qemuppc ?= "c31f38edf5dec2c295632199dbfe3f5a221f7c16" +SRCREV_machine ?= "cbaa8c8b83a7da70b94cc6cc1a25090071af4c3f" +SRCREV_machine_qemuppc ?= "41338ab2a1c19435e24bbd162ff6b3f8b90d7afa" SRCREV_meta ?= "f79a00265eefbe2fffc2cdb03f67235497a9a87e" SRC_URI = "git://git.yoctoproject.org/linux-yocto-3.10.git;bareclone=1;branch=${KBRANCH},meta;name=machine,meta"
meta/recipes-kernel/linux/linux-yocto-tiny_3.10.bb +1 -1
@@ -9,7 +9,7 @@ LINUX_VERSION ?= "3.10.55" KMETA = "meta" -SRCREV_machine ?= "8e055f3b669c65e83ba7128c248c632eedafad72" +SRCREV_machine ?= "3677ea7f9476458aa6dec440243de3a6fb1343a9" SRCREV_meta ?= "f79a00265eefbe2fffc2cdb03f67235497a9a87e" PV = "${LINUX_VERSION}+git${SRCPV}"
meta/recipes-kernel/linux/linux-yocto_3.10.bb +7 -7
@@ -10,13 +10,13 @@ KBRANCH_qemux86 ?= "standard/common-pc/base" KBRANCH_qemux86-64 ?= "standard/common-pc-64/base" KBRANCH_qemumips64 ?= "standard/mti-malta64" -SRCREV_machine_qemuarm ?= "a4195791d27ef50feb454765149ea34621ef8ed7" -SRCREV_machine_qemumips ?= "ff747b3dff7dfa643b3447a348b901cacc5b6a16" -SRCREV_machine_qemuppc ?= "46e30d608f4268b0ea77362398aae91f1d410ee3" -SRCREV_machine_qemux86 ?= "8e055f3b669c65e83ba7128c248c632eedafad72" -SRCREV_machine_qemux86-64 ?= "8e055f3b669c65e83ba7128c248c632eedafad72" -SRCREV_machine_qemumips64 ?= "42457c568170cb11a9011382ebca4677f22b35c1" -SRCREV_machine ?= "8e055f3b669c65e83ba7128c248c632eedafad72" +SRCREV_machine_qemuarm ?= "9c8da40f662806406940decf972841c1b86895a5" +SRCREV_machine_qemumips ?= "96adff9ce54c009ba90c3ddcaa6d16beb7a9c2b3" +SRCREV_machine_qemuppc ?= "cf3a9a021e2abb3b19807b2ba3c29c1d0918730b" +SRCREV_machine_qemux86 ?= "3677ea7f9476458aa6dec440243de3a6fb1343a9" +SRCREV_machine_qemux86-64 ?= "3677ea7f9476458aa6dec440243de3a6fb1343a9" +SRCREV_machine_qemumips64 ?= "89ab3082e01c4d98f9d14630aa904dba641c5373" +SRCREV_machine ?= "3677ea7f9476458aa6dec440243de3a6fb1343a9" SRCREV_meta ?= "f79a00265eefbe2fffc2cdb03f67235497a9a87e" SRC_URI = "git://git.yoctoproject.org/linux-yocto-3.10.git;bareclone=1;branch=${KBRANCH},${KMETA};name=machine,meta"
Signature · 1 line
1.9.1
PATCH 6/12 linux-yocto/3.10: update to v3.10.59
In reply to Armin KusterFrom: Bruce Ashfield <[email protected]>
Updating to the latest 3.10 -korg stable update. We also bring in a meta change for the valley island IO configuration.
(From OE-Core rev: 22d5ac7e1fc096dc11c766eda91c9e131398c6c5)
--- meta/recipes-kernel/linux/linux-yocto-rt_3.10.bb | 8 ++++---- meta/recipes-kernel/linux/linux-yocto-tiny_3.10.bb | 6 +++--- meta/recipes-kernel/linux/linux-yocto_3.10.bb | 18 +++++++++--------- 3 files changed, 16 insertions(+), 16 deletions(-)
meta/recipes-kernel/linux/linux-yocto-rt_3.10.bb +4 -4
@@ -3,13 +3,13 @@ KBRANCH_qemuppc ?= "standard/preempt-rt/qemuppc" require recipes-kernel/linux/linux-yocto.inc -SRCREV_machine ?= "cbaa8c8b83a7da70b94cc6cc1a25090071af4c3f" -SRCREV_machine_qemuppc ?= "41338ab2a1c19435e24bbd162ff6b3f8b90d7afa" -SRCREV_meta ?= "f79a00265eefbe2fffc2cdb03f67235497a9a87e" +SRCREV_machine ?= "38885f87b7240587194597c3658ba2c0ac5960e7" +SRCREV_machine_qemuppc ?= "535a7403beabe9c4aa394a1f9efa755eb33966c8" +SRCREV_meta ?= "8f05306a8e6f5ee422d50c3317acce0cf9e6aada" SRC_URI = "git://git.yoctoproject.org/linux-yocto-3.10.git;bareclone=1;branch=${KBRANCH},meta;name=machine,meta" -LINUX_VERSION ?= "3.10.55" +LINUX_VERSION ?= "3.10.59" PV = "${LINUX_VERSION}+git${SRCPV}"
meta/recipes-kernel/linux/linux-yocto-tiny_3.10.bb +3 -3
@@ -5,12 +5,12 @@ require recipes-kernel/linux/linux-yocto.inc LINUX_KERNEL_TYPE = "tiny" KCONFIG_MODE = "--allnoconfig" -LINUX_VERSION ?= "3.10.55" +LINUX_VERSION ?= "3.10.59" KMETA = "meta" -SRCREV_machine ?= "3677ea7f9476458aa6dec440243de3a6fb1343a9" -SRCREV_meta ?= "f79a00265eefbe2fffc2cdb03f67235497a9a87e" +SRCREV_machine ?= "747e1cbd12b15db8bc2ae86e2359c1b113f120d6" +SRCREV_meta ?= "8f05306a8e6f5ee422d50c3317acce0cf9e6aada" PV = "${LINUX_VERSION}+git${SRCPV}"
meta/recipes-kernel/linux/linux-yocto_3.10.bb +9 -9
@@ -10,18 +10,18 @@ KBRANCH_qemux86 ?= "standard/common-pc/base" KBRANCH_qemux86-64 ?= "standard/common-pc-64/base" KBRANCH_qemumips64 ?= "standard/mti-malta64" -SRCREV_machine_qemuarm ?= "9c8da40f662806406940decf972841c1b86895a5" -SRCREV_machine_qemumips ?= "96adff9ce54c009ba90c3ddcaa6d16beb7a9c2b3" -SRCREV_machine_qemuppc ?= "cf3a9a021e2abb3b19807b2ba3c29c1d0918730b" -SRCREV_machine_qemux86 ?= "3677ea7f9476458aa6dec440243de3a6fb1343a9" -SRCREV_machine_qemux86-64 ?= "3677ea7f9476458aa6dec440243de3a6fb1343a9" -SRCREV_machine_qemumips64 ?= "89ab3082e01c4d98f9d14630aa904dba641c5373" -SRCREV_machine ?= "3677ea7f9476458aa6dec440243de3a6fb1343a9" -SRCREV_meta ?= "f79a00265eefbe2fffc2cdb03f67235497a9a87e" +SRCREV_machine_qemuarm ?= "896f87d1003331d7a307c9f855cdbb78c9a2a033" +SRCREV_machine_qemumips ?= "9e616945464ab97a050da96a025d88c809d05144" +SRCREV_machine_qemuppc ?= "692b2de590668de2e15461879cf9301a0e6fedf6" +SRCREV_machine_qemux86 ?= "747e1cbd12b15db8bc2ae86e2359c1b113f120d6" +SRCREV_machine_qemux86-64 ?= "747e1cbd12b15db8bc2ae86e2359c1b113f120d6" +SRCREV_machine_qemumips64 ?= "d237cab9f483ea512ded4ea311902763c1a3ae68" +SRCREV_machine ?= "747e1cbd12b15db8bc2ae86e2359c1b113f120d6" +SRCREV_meta ?= "8f05306a8e6f5ee422d50c3317acce0cf9e6aada" SRC_URI = "git://git.yoctoproject.org/linux-yocto-3.10.git;bareclone=1;branch=${KBRANCH},${KMETA};name=machine,meta" -LINUX_VERSION ?= "3.10.55" +LINUX_VERSION ?= "3.10.59" PV = "${LINUX_VERSION}+git${SRCPV}"
Signature · 1 line
1.9.1
PATCH 7/12 linux-yocto/3.10: update to v3.10.62
In reply to Armin KusterFrom: Bruce Ashfield <[email protected]>
Updating to the latest korg -stable update for the 3.10 series. Minor merge conflict resolution was done with the standard/ltsi and standard/preempt-rt branches.
(From OE-Core rev: a87bf5d3d435d333f5ee9d15b8c641b03ff4bb9c)
--- meta/recipes-kernel/linux/linux-yocto-rt_3.10.bb | 8 ++++---- meta/recipes-kernel/linux/linux-yocto-tiny_3.10.bb | 6 +++--- meta/recipes-kernel/linux/linux-yocto_3.10.bb | 18 +++++++++--------- 3 files changed, 16 insertions(+), 16 deletions(-)
meta/recipes-kernel/linux/linux-yocto-rt_3.10.bb +4 -4
@@ -3,13 +3,13 @@ KBRANCH_qemuppc ?= "standard/preempt-rt/qemuppc" require recipes-kernel/linux/linux-yocto.inc -SRCREV_machine ?= "38885f87b7240587194597c3658ba2c0ac5960e7" -SRCREV_machine_qemuppc ?= "535a7403beabe9c4aa394a1f9efa755eb33966c8" -SRCREV_meta ?= "8f05306a8e6f5ee422d50c3317acce0cf9e6aada" +SRCREV_machine ?= "94a79d98e40b51466600fb3375ad2908c38dd192" +SRCREV_machine_qemuppc ?= "c1dcbac7751652784f180fdb91f87bc37fba8c52" +SRCREV_meta ?= "f4ab00d96a3d8e443d7f7744ad996e184eac03b5" SRC_URI = "git://git.yoctoproject.org/linux-yocto-3.10.git;bareclone=1;branch=${KBRANCH},meta;name=machine,meta" -LINUX_VERSION ?= "3.10.59" +LINUX_VERSION ?= "3.10.62" PV = "${LINUX_VERSION}+git${SRCPV}"
meta/recipes-kernel/linux/linux-yocto-tiny_3.10.bb +3 -3
@@ -5,12 +5,12 @@ require recipes-kernel/linux/linux-yocto.inc LINUX_KERNEL_TYPE = "tiny" KCONFIG_MODE = "--allnoconfig" -LINUX_VERSION ?= "3.10.59" +LINUX_VERSION ?= "3.10.62" KMETA = "meta" -SRCREV_machine ?= "747e1cbd12b15db8bc2ae86e2359c1b113f120d6" -SRCREV_meta ?= "8f05306a8e6f5ee422d50c3317acce0cf9e6aada" +SRCREV_machine ?= "b2ac933df119a3444a32fcccf5e4ad453f5ac89d" +SRCREV_meta ?= "f4ab00d96a3d8e443d7f7744ad996e184eac03b5" PV = "${LINUX_VERSION}+git${SRCPV}"
meta/recipes-kernel/linux/linux-yocto_3.10.bb +9 -9
@@ -10,18 +10,18 @@ KBRANCH_qemux86 ?= "standard/common-pc/base" KBRANCH_qemux86-64 ?= "standard/common-pc-64/base" KBRANCH_qemumips64 ?= "standard/mti-malta64" -SRCREV_machine_qemuarm ?= "896f87d1003331d7a307c9f855cdbb78c9a2a033" -SRCREV_machine_qemumips ?= "9e616945464ab97a050da96a025d88c809d05144" -SRCREV_machine_qemuppc ?= "692b2de590668de2e15461879cf9301a0e6fedf6" -SRCREV_machine_qemux86 ?= "747e1cbd12b15db8bc2ae86e2359c1b113f120d6" -SRCREV_machine_qemux86-64 ?= "747e1cbd12b15db8bc2ae86e2359c1b113f120d6" -SRCREV_machine_qemumips64 ?= "d237cab9f483ea512ded4ea311902763c1a3ae68" -SRCREV_machine ?= "747e1cbd12b15db8bc2ae86e2359c1b113f120d6" -SRCREV_meta ?= "8f05306a8e6f5ee422d50c3317acce0cf9e6aada" +SRCREV_machine_qemuarm ?= "f6b075991c91b7c2bb641b389757863e2fd34b8c" +SRCREV_machine_qemumips ?= "48afdc632312b6cc26fe7bca151cfb66b2ebc308" +SRCREV_machine_qemuppc ?= "cf35ea9ac92153858dadd2f4ab71cccd3a1fa26b" +SRCREV_machine_qemux86 ?= "b2ac933df119a3444a32fcccf5e4ad453f5ac89d" +SRCREV_machine_qemux86-64 ?= "b2ac933df119a3444a32fcccf5e4ad453f5ac89d" +SRCREV_machine_qemumips64 ?= "ebdb374ca5130ef456d0baf75b6fe7a242932d0d" +SRCREV_machine ?= "b2ac933df119a3444a32fcccf5e4ad453f5ac89d" +SRCREV_meta ?= "f4ab00d96a3d8e443d7f7744ad996e184eac03b5" SRC_URI = "git://git.yoctoproject.org/linux-yocto-3.10.git;bareclone=1;branch=${KBRANCH},${KMETA};name=machine,meta" -LINUX_VERSION ?= "3.10.59" +LINUX_VERSION ?= "3.10.62" PV = "${LINUX_VERSION}+git${SRCPV}"
Signature · 1 line
1.9.1
PATCH 8/12 linux-yocto/3.14: update to v3.14.24
In reply to Armin KusterFrom: Bruce Ashfield <[email protected]>
(From OE-Core rev: e2c2960ae79953b5ef69444d91f2e784a35bfefd)
--- meta/recipes-kernel/linux/linux-yocto-rt_3.14.bb | 8 ++++---- meta/recipes-kernel/linux/linux-yocto-tiny_3.14.bb | 6 +++--- meta/recipes-kernel/linux/linux-yocto_3.14.bb | 18 +++++++++--------- 3 files changed, 16 insertions(+), 16 deletions(-)
meta/recipes-kernel/linux/linux-yocto-rt_3.14.bb +4 -4
@@ -3,13 +3,13 @@ KBRANCH_qemuppc ?= "standard/preempt-rt/qemuppc" require recipes-kernel/linux/linux-yocto.inc -SRCREV_machine ?= "0a875ce52aa7a42ddabdb87038074381bb268e77" -SRCREV_machine_qemuppc ?= "b993661d41f08846daa28b14f89c8ae3e94225bd" -SRCREV_meta ?= "fb6271a942b57bdc40c6e49f0203be153699f81c" +SRCREV_machine ?= "baad552ea168dc31db31f0be188edefaa28a4aec" +SRCREV_machine_qemuppc ?= "db4221ed2e1c6c617ad07d3374f630bbb59cf8b5" +SRCREV_meta ?= "fba2d0cdb745e0f807ce134fd9d1524b7bed9742" SRC_URI = "git://git.yoctoproject.org/linux-yocto-3.14.git;bareclone=1;branch=${KBRANCH},meta;name=machine,meta" -LINUX_VERSION ?= "3.14.19" +LINUX_VERSION ?= "3.14.24" PV = "${LINUX_VERSION}+git${SRCPV}"
meta/recipes-kernel/linux/linux-yocto-tiny_3.14.bb +3 -3
@@ -4,12 +4,12 @@ KCONFIG_MODE = "--allnoconfig" require recipes-kernel/linux/linux-yocto.inc -LINUX_VERSION ?= "3.14.19" +LINUX_VERSION ?= "3.14.24" KMETA = "meta" -SRCREV_machine ?= "902f34d36102a4b2008b776ecae686f80d307e12" -SRCREV_meta ?= "fb6271a942b57bdc40c6e49f0203be153699f81c" +SRCREV_machine ?= "c100e8665052051487a17169748c457829d3f88c" +SRCREV_meta ?= "fba2d0cdb745e0f807ce134fd9d1524b7bed9742" PV = "${LINUX_VERSION}+git${SRCPV}"
meta/recipes-kernel/linux/linux-yocto_3.14.bb +9 -9
@@ -10,18 +10,18 @@ KBRANCH_qemux86 ?= "standard/common-pc/base" KBRANCH_qemux86-64 ?= "standard/common-pc-64/base" KBRANCH_qemumips64 ?= "standard/mti-malta64" -SRCREV_machine_qemuarm ?= "127b621f2a4d3b1111e24423c12fac001e047c1c" -SRCREV_machine_qemumips ?= "c3b9f1b2397f0847ab4844d1cdb8e02574434d78" -SRCREV_machine_qemuppc ?= "73e2411cdd91764d0601c0869857f53381c2a177" -SRCREV_machine_qemux86 ?= "e19a1b40de44e756defdfb40349342d8037609bd" -SRCREV_machine_qemux86-64 ?= "902f34d36102a4b2008b776ecae686f80d307e12" -SRCREV_machine_qemumips64 ?= "1c4d70272dde4b695697dd8705a031420480f712" -SRCREV_machine ?= "902f34d36102a4b2008b776ecae686f80d307e12" -SRCREV_meta ?= "fb6271a942b57bdc40c6e49f0203be153699f81c" +SRCREV_machine_qemuarm ?= "b768ebfe28a20b65aba734b9f6646a3fa0adc89b" +SRCREV_machine_qemumips ?= "c76146e6c8a015c1225141fc55d867a3e47453c6" +SRCREV_machine_qemuppc ?= "e54ab8451c482b695ff7a0c580ef2fb1be605299" +SRCREV_machine_qemux86 ?= "146fcb1dd7b3c5547d67f04d50b082f0723741e9" +SRCREV_machine_qemux86-64 ?= "c100e8665052051487a17169748c457829d3f88c" +SRCREV_machine_qemumips64 ?= "71621ee758600abd3cf7187d7a8e7d51f4052c53" +SRCREV_machine ?= "c100e8665052051487a17169748c457829d3f88c" +SRCREV_meta ?= "fba2d0cdb745e0f807ce134fd9d1524b7bed9742" SRC_URI = "git://git.yoctoproject.org/linux-yocto-3.14.git;bareclone=1;branch=${KBRANCH},${KMETA};name=machine,meta" -LINUX_VERSION ?= "3.14.19" +LINUX_VERSION ?= "3.14.24" PV = "${LINUX_VERSION}+git${SRCPV}"
Signature · 1 line
1.9.1
PATCH 9/12 linux-yocto/3.14: update to 3.14.26, integrate ltsi and -rt updates
In reply to Armin KusterFrom: Bruce Ashfield <[email protected]>
Updating the 3.14 tree to the latest korg 3.14.26, as well as integrating 3.14 LTSI content, and refreshing preempt-rt. Minor conflict resolutions were performed between ltsi, stable and -rt
(From OE-Core rev: 8c30cec8233605cbec334fcc5c2b9ef5cf8f6482)
--- meta/recipes-kernel/linux/linux-yocto-rt_3.14.bb | 6 +++--- meta/recipes-kernel/linux/linux-yocto-tiny_3.14.bb | 4 ++-- meta/recipes-kernel/linux/linux-yocto_3.14.bb | 16 ++++++++-------- 3 files changed, 13 insertions(+), 13 deletions(-)
meta/recipes-kernel/linux/linux-yocto-rt_3.14.bb +3 -3
@@ -3,9 +3,9 @@ KBRANCH_qemuppc ?= "standard/preempt-rt/qemuppc" require recipes-kernel/linux/linux-yocto.inc -SRCREV_machine ?= "baad552ea168dc31db31f0be188edefaa28a4aec" -SRCREV_machine_qemuppc ?= "db4221ed2e1c6c617ad07d3374f630bbb59cf8b5" -SRCREV_meta ?= "fba2d0cdb745e0f807ce134fd9d1524b7bed9742" +SRCREV_machine ?= "7f0712d10247ffca8e48e944f49707bcf9117ead" +SRCREV_machine_qemuppc ?= "8bed2a975d491c963cff56496f7e35f5bcff926f" +SRCREV_meta ?= "a227f20eff056e511d504b2e490f3774ab260d6f" SRC_URI = "git://git.yoctoproject.org/linux-yocto-3.14.git;bareclone=1;branch=${KBRANCH},meta;name=machine,meta"
meta/recipes-kernel/linux/linux-yocto-tiny_3.14.bb +2 -2
@@ -8,8 +8,8 @@ LINUX_VERSION ?= "3.14.24" KMETA = "meta" -SRCREV_machine ?= "c100e8665052051487a17169748c457829d3f88c" -SRCREV_meta ?= "fba2d0cdb745e0f807ce134fd9d1524b7bed9742" +SRCREV_machine ?= "02120556b0ebc20c30374ccf211e8e4ceac2bb1c" +SRCREV_meta ?= "a227f20eff056e511d504b2e490f3774ab260d6f" PV = "${LINUX_VERSION}+git${SRCPV}"
meta/recipes-kernel/linux/linux-yocto_3.14.bb +8 -8
@@ -10,14 +10,14 @@ KBRANCH_qemux86 ?= "standard/common-pc/base" KBRANCH_qemux86-64 ?= "standard/common-pc-64/base" KBRANCH_qemumips64 ?= "standard/mti-malta64" -SRCREV_machine_qemuarm ?= "b768ebfe28a20b65aba734b9f6646a3fa0adc89b" -SRCREV_machine_qemumips ?= "c76146e6c8a015c1225141fc55d867a3e47453c6" -SRCREV_machine_qemuppc ?= "e54ab8451c482b695ff7a0c580ef2fb1be605299" -SRCREV_machine_qemux86 ?= "146fcb1dd7b3c5547d67f04d50b082f0723741e9" -SRCREV_machine_qemux86-64 ?= "c100e8665052051487a17169748c457829d3f88c" -SRCREV_machine_qemumips64 ?= "71621ee758600abd3cf7187d7a8e7d51f4052c53" -SRCREV_machine ?= "c100e8665052051487a17169748c457829d3f88c" -SRCREV_meta ?= "fba2d0cdb745e0f807ce134fd9d1524b7bed9742" +SRCREV_machine_qemuarm ?= "6166316d47b859aa38bfecc61f4808828af03937" +SRCREV_machine_qemumips ?= "4ececcc09c6550a0896728163907e729d817c2fd" +SRCREV_machine_qemuppc ?= "1cc5b09f8bb7f40b289d149d370c62dcc8109501" +SRCREV_machine_qemux86 ?= "38cd560d5022ed2dbd1ab0dca9642e47c98a0aa1" +SRCREV_machine_qemux86-64 ?= "02120556b0ebc20c30374ccf211e8e4ceac2bb1c" +SRCREV_machine_qemumips64 ?= "737272b1dfd361d9ea19812a9717e2798e3c4576" +SRCREV_machine ?= "02120556b0ebc20c30374ccf211e8e4ceac2bb1c" +SRCREV_meta ?= "a227f20eff056e511d504b2e490f3774ab260d6f" SRC_URI = "git://git.yoctoproject.org/linux-yocto-3.14.git;bareclone=1;branch=${KBRANCH},${KMETA};name=machine,meta"
Signature · 1 line
1.9.1
PATCH 10/12 lttng-modules: fix mm_compaction_isolate_template build
In reply to Armin KusterFrom: Bruce Ashfield <[email protected]>
linux-stable integrated the 3.16 commit f8c9301fa5a2a [mm/compaction: do not count migratepages when unnecessary] with the 3.14.25 update.
So we have to update the lttng-module linux version codes to use the new definition in builds greater than 3.14.24 or 3.16.
(From OE-Core rev: cf76820379746e91fc4cf01895cb98cc56987002)
--- ...-fix-mm_compaction_isolate_template-build.patch | 41 ++++++++++++++++++++++ meta/recipes-kernel/lttng/lttng-modules_2.5.0.bb | 1 + 2 files changed, 42 insertions(+) create mode 100644 meta/recipes-kernel/lttng/lttng-modules/compaction-fix-mm_compaction_isolate_template-build.patch
meta/recipes-kernel/lttng/lttng-modules/compaction-fix-mm_compaction_isolate_template-build.patch new file +41 -0
@@ -0,0 +1,41 @@ +From af48c7b08de4b811d3d974e65e362b86ce8c4a34 Mon Sep 17 00:00:00 2001 +From: Bruce Ashfield <[email protected]> +Date: Wed, 10 Dec 2014 03:19:28 -0500 +Subject: [PATCH] compaction: fix mm_compaction_isolate_template build + +linux-stable integrated the 3.16 commit f8c9301fa5a2a [mm/compaction: do +not count migratepages when unnecessary] with the 3.14.25 update. + +So we have to update the lttng-module linux version codes to use the +new definition in builds greater than 3.14.24 or 3.16. + +Signed-off-by: Bruce Ashfield <[email protected]> +--- + instrumentation/events/lttng-module/compaction.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/instrumentation/events/lttng-module/compaction.h b/instrumentation/events/lttng-module/compaction.h +index 22024e9ee582..07afbe06f1a6 100644 +--- a/instrumentation/events/lttng-module/compaction.h ++++ b/instrumentation/events/lttng-module/compaction.h +@@ -46,7 +46,7 @@ DEFINE_EVENT(mm_compaction_isolate_template, mm_compaction_isolate_freepages, + TP_ARGS(nr_scanned, nr_taken) + ) + +-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0)) ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0) || LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,25)) + TRACE_EVENT(mm_compaction_migratepages, + + TP_PROTO(unsigned long nr_all, +@@ -87,7 +87,7 @@ TRACE_EVENT(mm_compaction_migratepages, + __entry->nr_migrated, + __entry->nr_failed) + ) +-#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0)) */ ++#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0) || LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,25)) */ + TRACE_EVENT(mm_compaction_migratepages, + + TP_PROTO(unsigned long nr_migrated, +-- +2.1.0 +
meta/recipes-kernel/lttng/lttng-modules_2.5.0.bb +1 -0
@@ -22,6 +22,7 @@ SRC_URI = "git://git.lttng.org/lttng-modules.git;branch=stable-2.5 \ file://Update-statedump-to-3.17-nsproxy-locking.patch \ file://Update-kvm-instrumentation-compile-on-3.17-rc1.patch \ file://fix_build_with_v3.17_kernel.patch \ + file://compaction-fix-mm_compaction_isolate_template-build.patch \ " export INSTALL_MOD_DIR="kernel/lttng-modules"
Signature · 1 line
1.9.1
PATCH 11/12 bind: fix for CVE-2014-8500
In reply to Armin KusterFrom: Sona Sarmadi <[email protected]>
[From upstream commit: 603a0e2637b35a2da820bc807f69bcf09c682dce]
[YOCTO #7098]
External References:
===================
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-8500
(From OE-Core rev: 7225d6e0c82f264057de40c04b31655f2b0e0c96)
--- .../bind/bind/bind9_9_5-CVE-2014-8500.patch | 990 +++++++++++++++++++++ meta/recipes-connectivity/bind/bind_9.9.5.bb | 1 + 2 files changed, 991 insertions(+) create mode 100644 meta/recipes-connectivity/bind/bind/bind9_9_5-CVE-2014-8500.patch
meta/recipes-connectivity/bind/bind/bind9_9_5-CVE-2014-8500.patch new file +990 -0
@@ -0,0 +1,990 @@ +From 603a0e2637b35a2da820bc807f69bcf09c682dce Mon Sep 17 00:00:00 2001 +From: Evan Hunt <[email protected]> +Date: Mon, 17 Nov 2014 23:49:07 -0800 +Subject: [PATCH] [v9_9] limit recursion depth and iterative queries + +4006. [security] A flaw in delegation handling could be exploited + to put named into an infinite loop. This has + been addressed by placing limits on the number + of levels of recursion named will allow (default 7), + and the number of iterative queries that it will + send (default 50) before terminating a recursive + query (CVE-2014-8500). + + The recursion depth limit is configured via the + "max-recursion-depth" option. [RT #35780] + +Upstream-Status: Backport + +Signed-off-by: Sona Sarmadi <[email protected]> +--- + bin/named/config.c | 3 +- + bin/named/include/named/query.h | 2 - + bin/named/query.c | 7 ++- + bin/named/server.c | 5 ++ + bin/tests/system/many/clean.sh | 7 +++ + bin/tests/system/many/ns1/named.conf | 33 +++++++++++++ + bin/tests/system/many/ns2/named.conf | 30 ++++++++++++ + bin/tests/system/many/ns3/named.conf | 32 +++++++++++++ + bin/tests/system/many/ns4/named.conf | 30 ++++++++++++ + bin/tests/system/many/ns5/hints.db | 2 + + bin/tests/system/many/ns5/named.conf | 29 ++++++++++++ + bin/tests/system/many/setup.sh | 75 ++++++++++++++++++++++++++++++ + bin/tests/system/many/tests.sh | 48 +++++++++++++++++++ + doc/arm/Bv9ARM-book.xml | 12 +++++ + lib/dns/adb.c | 58 ++++++++++++++++------- + lib/dns/include/dns/adb.h | 8 ++++ + lib/dns/include/dns/resolver.h | 25 ++++++++++ + lib/dns/resolver.c | 90 ++++++++++++++++++++++++++++++------ + lib/isccfg/namedconf.c | 1 + + 20 files changed, 471 insertions(+), 37 deletions(-) + create mode 100644 bin/tests/system/many/clean.sh + create mode 100644 bin/tests/system/many/ns1/named.conf + create mode 100644 bin/tests/system/many/ns2/named.conf + create mode 100644 bin/tests/system/many/ns3/named.conf + create mode 100644 bin/tests/system/many/ns4/named.conf + create mode 100644 bin/tests/system/many/ns5/hints.db + create mode 100644 bin/tests/system/many/ns5/named.conf + create mode 100644 bin/tests/system/many/setup.sh + create mode 100644 bin/tests/system/many/tests.sh + +diff --git a/bin/named/config.c b/bin/named/config.c +index 2782720..5ee8c4e 100644 +--- a/bin/named/config.c ++++ b/bin/named/config.c +@@ -15,8 +15,6 @@ + * PERFORMANCE OF THIS SOFTWARE. + */ + +-/* $Id: config.c,v 1.123 2012/01/06 23:46:41 tbox Exp $ */ +- + /*! \file */ + + #include <config.h> +@@ -160,6 +158,7 @@ options {\n\ + dnssec-accept-expired no;\n\ + clients-per-query 10;\n\ + max-clients-per-query 100;\n\ ++ max-recursion-depth 7;\n\ + zero-no-soa-ttl-cache no;\n\ + nsec3-test-zone no;\n\ + allow-new-zones no;\n\ +diff --git a/bin/named/include/named/query.h b/bin/named/include/named/query.h +index 3beabb8..b5e3900 100644 +--- a/bin/named/include/named/query.h ++++ b/bin/named/include/named/query.h +@@ -15,8 +15,6 @@ + * PERFORMANCE OF THIS SOFTWARE. + */ + +-/* $Id: query.h,v 1.45 2011/01/13 04:59:24 tbox Exp $ */ +- + #ifndef NAMED_QUERY_H + #define NAMED_QUERY_H 1 + +diff --git a/bin/named/query.c b/bin/named/query.c +index 982f76d..47bfc6a 100644 +--- a/bin/named/query.c ++++ b/bin/named/query.c +@@ -3877,12 +3877,11 @@ query_recurse(ns_client_t *client, dns_rdatatype_t qtype, dns_name_t *qname, + peeraddr = &client->peeraddr; + else + peeraddr = NULL; +- result = dns_resolver_createfetch2(client->view->resolver, ++ result = dns_resolver_createfetch3(client->view->resolver, + qname, qtype, qdomain, nameservers, + NULL, peeraddr, client->message->id, +- client->query.fetchoptions, +- client->task, +- query_resume, client, ++ client->query.fetchoptions, 0, ++ client->task, query_resume, client, + rdataset, sigrdataset, + &client->query.fetch); + +diff --git a/bin/named/server.c b/bin/named/server.c +index ac015a4..0559977 100644 +--- a/bin/named/server.c ++++ b/bin/named/server.c +@@ -3161,6 +3161,11 @@ configure_view(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig, + cfg_obj_asuint32(obj), + max_clients_per_query); + ++ obj = NULL; ++ result = ns_config_get(maps, "max-recursion-depth", &obj); ++ INSIST(result == ISC_R_SUCCESS); ++ dns_resolver_setmaxdepth(view->resolver, cfg_obj_asuint32(obj)); ++ + #ifdef ALLOW_FILTER_AAAA_ON_V4 + obj = NULL; + result = ns_config_get(maps, "filter-aaaa-on-v4", &obj); +diff --git a/bin/tests/system/many/clean.sh b/bin/tests/system/many/clean.sh +new file mode 100644 +index 0000000..119b1f5 +--- /dev/null ++++ b/bin/tests/system/many/clean.sh +@@ -0,0 +1,7 @@ ++rm -f ns1/[1-9]*example.tld?.db ++rm -f ns2/[1-9]*example.tld?.db ++rm -f ns1/zones.conf ++rm -f ns2/zones.conf ++rm -f */root.db ++rm -f ns3/tld1.db ++rm -f ns4/tld2.db +diff --git a/bin/tests/system/many/ns1/named.conf b/bin/tests/system/many/ns1/named.conf +new file mode 100644 +index 0000000..abc9dca +--- /dev/null ++++ b/bin/tests/system/many/ns1/named.conf +@@ -0,0 +1,33 @@ ++/* ++ * Copyright (C) 2014 Internet Systems Consortium, Inc. ("ISC") ++ * ++ * Permission to use, copy, modify, and/or distribute this software for any ++ * purpose with or without fee is hereby granted, provided that the above ++ * copyright notice and this permission notice appear in all copies. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH ++ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY ++ * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, ++ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM ++ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE ++ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR ++ * PERFORMANCE OF THIS SOFTWARE. ++ */ ++ ++controls { /* empty */ }; ++ ++options { ++ query-source address 10.53.0.1; ++ notify-source 10.53.0.1; ++ transfer-source 10.53.0.1; ++ port 5300; ++ pid-file "named.pid"; ++ listen-on { 10.53.0.1; }; ++ listen-on-v6 { none; }; ++ recursion no; ++}; ++ ++include "zones.conf"; ++ ++// zone "tld1" { type master; file "tld1.db"; }; ++// zone "tld2" { type master; file "tld2.db"; }; +diff --git a/bin/tests/system/many/ns2/named.conf b/bin/tests/system/many/ns2/named.conf +new file mode 100644 +index 0000000..16266e2 +--- /dev/null ++++ b/bin/tests/system/many/ns2/named.conf +@@ -0,0 +1,30 @@ ++/* ++ * Copyright (C) 2014 Internet Systems Consortium, Inc. ("ISC") ++ * ++ * Permission to use, copy, modify, and/or distribute this software for any ++ * purpose with or without fee is hereby granted, provided that the above ++ * copyright notice and this permission notice appear in all copies. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH ++ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY ++ * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, ++ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM ++ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE ++ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR ++ * PERFORMANCE OF THIS SOFTWARE. ++ */ ++ ++controls { /* empty */ }; ++ ++options { ++ query-source address 10.53.0.2; ++ notify-source 10.53.0.2; ++ transfer-source 10.53.0.2; ++ port 5300; ++ pid-file "named.pid"; ++ listen-on { 10.53.0.2; }; ++ listen-on-v6 { none; }; ++ recursion no; ++}; ++ ++include "zones.conf"; +diff --git a/bin/tests/system/many/ns3/named.conf b/bin/tests/system/many/ns3/named.conf +new file mode 100644 +index 0000000..b950afe +--- /dev/null ++++ b/bin/tests/system/many/ns3/named.conf +@@ -0,0 +1,32 @@ ++/* ++ * Copyright (C) 2014 Internet Systems Consortium, Inc. ("ISC") ++ * ++ * Permission to use, copy, modify, and/or distribute this software for any ++ * purpose with or without fee is hereby granted, provided that the above ++ * copyright notice and this permission notice appear in all copies. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH ++ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY ++ * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, ++ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM ++ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE ++ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR ++ * PERFORMANCE OF THIS SOFTWARE. ++ */ ++ ++controls { /* empty */ }; ++ ++options { ++ query-source address 10.53.0.3; ++ notify-source 10.53.0.3; ++ transfer-source 10.53.0.3; ++ port 5300; ++ pid-file "named.pid"; ++ listen-on { 10.53.0.3; }; ++ listen-on-v6 { none; }; ++ recursion no; ++}; ++ ++zone "." { type master; file "root.db"; }; ++ ++zone "tld1" { type master; file "tld1.db"; }; +diff --git a/bin/tests/system/many/ns4/named.conf b/bin/tests/system/many/ns4/named.conf +new file mode 100644 +index 0000000..ca9aa6a +--- /dev/null ++++ b/bin/tests/system/many/ns4/named.conf +@@ -0,0 +1,30 @@ ++/* ++ * Copyright (C) 2014 Internet Systems Consortium, Inc. ("ISC") ++ * ++ * Permission to use, copy, modify, and/or distribute this software for any ++ * purpose with or without fee is hereby granted, provided that the above ++ * copyright notice and this permission notice appear in all copies. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH ++ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY ++ * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, ++ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM ++ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE ++ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR ++ * PERFORMANCE OF THIS SOFTWARE. ++ */ ++ ++controls { /* empty */ }; ++ ++options { ++ query-source address 10.53.0.4; ++ notify-source 10.53.0.4; ++ transfer-source 10.53.0.4; ++ port 5300; ++ pid-file "named.pid"; ++ listen-on { 10.53.0.4; }; ++ listen-on-v6 { none; }; ++ recursion no; ++}; ++ ++zone "tld2" { type master; file "tld2.db"; }; +diff --git a/bin/tests/system/many/ns5/hints.db b/bin/tests/system/many/ns5/hints.db +new file mode 100644 +index 0000000..c05809b +--- /dev/null ++++ b/bin/tests/system/many/ns5/hints.db +@@ -0,0 +1,2 @@ ++. 60 in ns ns.nil. ++ns.nil. 60 in A 10.53.0.3 +diff --git a/bin/tests/system/many/ns5/named.conf b/bin/tests/system/many/ns5/named.conf +new file mode 100644 +index 0000000..fce7d59 +--- /dev/null ++++ b/bin/tests/system/many/ns5/named.conf +@@ -0,0 +1,29 @@ ++/* ++ * Copyright (C) 2014 Internet Systems Consortium, Inc. ("ISC") ++ * ++ * Permission to use, copy, modify, and/or distribute this software for any ++ * purpose with or without fee is hereby granted, provided that the above ++ * copyright notice and this permission notice appear in all copies. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH ++ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY ++ * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, ++ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM ++ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE ++ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR ++ * PERFORMANCE OF THIS SOFTWARE. ++ */ ++ ++controls { /* empty */ }; ++ ++options { ++ query-source address 10.53.0.5; ++ notify-source 10.53.0.5; ++ transfer-source 10.53.0.5; ++ port 5300; ++ pid-file "named.pid"; ++ listen-on { 10.53.0.5; }; ++ listen-on-v6 { none; }; ++}; ++ ++zone "." { type hint; file "hints.db"; }; +diff --git a/bin/tests/system/many/setup.sh b/bin/tests/system/many/setup.sh +new file mode 100644 +index 0000000..80695b5 +--- /dev/null ++++ b/bin/tests/system/many/setup.sh +@@ -0,0 +1,75 @@ ++i=1 ++ ++cat > ns3/root.db << EOF ++. 60 in soa ns.nil. hostmaster.ns.nil. 1 0 0 0 0 ++. 60 in ns ns.nil. ++ns.nil. 60 in a 10.53.0.3 ++tld1. 60 in ns ns.tld1. ++ns.tld1. 60 in a 10.53.0.3 ++tld2. 60 in ns ns.tld2. ++ns.tld2. 60 in a 10.53.0.4 ++EOF ++ ++cat > ns3/tld1.db << EOF ++tld1. 60 in soa ns.tld1. hostmaster.ns.tld1. 1 0 0 0 0 ++tld1. 60 in ns ns.tld1. ++ns.tld1. 60 in a 10.53.0.1 ++EOF ++ ++cat > ns4/tld2.db << EOF ++tld2. 60 in soa ns.tld2. hostmaster.ns.tld4. 1 0 0 0 0 ++tld2. 60 in ns ns.tld2. ++ns.tld2. 60 in a 10.53.0.1 ++EOF ++ ++: > ns1/zones.conf ++: > ns2/zones.conf ++ ++while [ $i -lt 1000 ] ++do ++j=`expr $i + 1` ++s=`expr $j % 2 + 1` ++n=`expr $i % 2 + 1` ++t=`expr $s + 2` ++ ++# i=1 j=2 s=1 n=2 ++# i=2 j=3 s=1 n=2 ++# i=3 j=4 s=1 n=2 ++ ++cat > ns1/${i}example.tld${s}.db << EOF ++${i}example.tld${s}. 60 in soa ns.${j}example.tld${n}. hostmaster 1 0 0 0 0 ++${i}example.tld${s}. 60 in ns ns.${j}example.tld${n}. ++ns.${i}example.tld${s}. 60 in a 10.53.0.1 ++EOF ++ ++cat >> ns1/zones.conf << EOF ++zone "${i}example.tld${s}" { type master; file "${i}example.tld${s}.db"; }; ++EOF ++ ++cat >> ns${t}/tld${s}.db << EOF ++${i}example.tld${s}. 60 in ns ns.${j}example.tld${n}. ++EOF ++ ++i=$j ++ ++done ++ ++j=`expr $i + 1` ++s=`expr $j % 2 + 1` ++n=`expr $s % 2 + 1` ++t=`expr $s + 2` ++ ++cat > ns1/${i}example.tld${s}.db << EOF ++${i}example.tld${s}. 60 in soa ns.${i}example.tld${s}. hostmaster 1 0 0 0 0 ++${i}example.tld${s}. 60 in ns ns.${i}example.tld${s}. ++ns.${i}example.tld${s}. 60 in a 10.53.0.1 ++EOF ++ ++cat >> ns1/zones.conf << EOF ++zone "${i}example.tld${s}" { type master; file "${i}example.tld${s}.db"; }; ++EOF ++ ++cat >> ns${t}/tld${s}.db << EOF ++${i}example.tld${s}. 60 in ns ns.${i}example.tld${s}. ++ns.${i}example.tld${s}. 60 in a 10.53.0.1 ++EOF +diff --git a/bin/tests/system/many/tests.sh b/bin/tests/system/many/tests.sh +new file mode 100644 +index 0000000..37964e2 +--- /dev/null ++++ b/bin/tests/system/many/tests.sh +@@ -0,0 +1,48 @@ ++#!/bin/sh ++# ++# Copyright (C) 2014 Internet Systems Consortium, Inc. ("ISC") ++# ++# Permission to use, copy, modify, and/or distribute this software for any ++# purpose with or without fee is hereby granted, provided that the above ++# copyright notice and this permission notice appear in all copies. ++# ++# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH ++# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY ++# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, ++# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM ++# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE ++# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR ++# PERFORMANCE OF THIS SOFTWARE. ++ ++SYSTEMTESTTOP=.. ++. $SYSTEMTESTTOP/conf.sh ++ ++status=0 ++n=0 ++ ++n=`expr $n + 1` ++echo "I: attempt lookup 1example.tld2 soa ($n)" ++ret=0 ++$DIG +tcp 1example.tld1 soa @10.53.0.5 -p 5300 > dig.out.test$n ++grep "status: SERVFAIL" dig.out.test$n > /dev/null || ret=1 ++if [ $ret != 0 ]; then echo "I:failed"; fi ++status=`expr $status + $ret` ++ ++n=`expr $n + 1` ++echo "I: attempt lookup 992example.tld2 soa ($n)" ++ret=0 ++$DIG +tcp 992example.tld2 soa @10.53.0.5 -p 5300 > dig.out.test$n ++grep "status: SERVFAIL" dig.out.test$n > /dev/null || ret=1 ++if [ $ret != 0 ]; then echo "I:failed"; fi ++status=`expr $status + $ret` ++ ++n=`expr $n + 1` ++echo "I: attempt lookup 993example.tld1 soa ($n)" ++ret=0 ++$DIG +tcp 993example.tld1 soa @10.53.0.5 -p 5300 > dig.out.test$n ++grep "status: NOERROR" dig.out.test$n > /dev/null || ret=1 ++if [ $ret != 0 ]; then echo "I:failed"; fi ++status=`expr $status + $ret` ++ ++echo "I:exit status: $status" ++exit $status +diff --git a/doc/arm/Bv9ARM-book.xml b/doc/arm/Bv9ARM-book.xml +index 9f7bd38..fff4249 100644 +--- a/doc/arm/Bv9ARM-book.xml ++++ b/doc/arm/Bv9ARM-book.xml +@@ -4861,6 +4861,7 @@ badresp:1,adberr:0,findfail:0,valfail:0] + <optional> max-acache-size <replaceable>size_spec</replaceable> ; </optional> + <optional> clients-per-query <replaceable>number</replaceable> ; </optional> + <optional> max-clients-per-query <replaceable>number</replaceable> ; </optional> ++ <optional> max-recursion-depth <replaceable>number</replaceable> ; </optional> + <optional> masterfile-format (<constant>text</constant>|<constant>raw</constant>) ; </optional> + <optional> empty-server <replaceable>name</replaceable> ; </optional> + <optional> empty-contact <replaceable>name</replaceable> ; </optional> +@@ -8680,6 +8681,17 @@ avoid-v6-udp-ports { 40000; range 50000 60000; }; + </listitem> + </varlistentry> + ++ <varlistentry id="max-recursion-depth"> ++ <term><command>max-recursion-depth</command></term> ++ <listitem> ++ <para> ++ Sets the maximum number of levels of recursion ++ permitted at any one time while resolving a name. ++ The default is 7. ++ </para> ++ </listitem> ++ </varlistentry> ++ + <varlistentry> + <term><command>notify-delay</command></term> + <listitem> +diff --git a/lib/dns/adb.c b/lib/dns/adb.c +index 2ccb51e..fe9b3f7 100644 +--- a/lib/dns/adb.c ++++ b/lib/dns/adb.c +@@ -199,6 +199,7 @@ struct dns_adbfetch { + unsigned int magic; + dns_fetch_t *fetch; + dns_rdataset_t rdataset; ++ unsigned int depth; + }; + + /*% +@@ -300,7 +301,7 @@ static inline void violate_locking_hierarchy(isc_mutex_t *, isc_mutex_t *); + static isc_boolean_t clean_namehooks(dns_adb_t *, dns_adbnamehooklist_t *); + static void clean_target(dns_adb_t *, dns_name_t *); + static void clean_finds_at_name(dns_adbname_t *, isc_eventtype_t, +- unsigned int); ++ isc_uint32_t, unsigned int); + static isc_boolean_t check_expire_namehooks(dns_adbname_t *, isc_stdtime_t); + static isc_boolean_t check_expire_entry(dns_adb_t *, dns_adbentry_t **, + isc_stdtime_t); +@@ -308,7 +309,7 @@ static void cancel_fetches_at_name(dns_adbname_t *); + static isc_result_t dbfind_name(dns_adbname_t *, isc_stdtime_t, + dns_rdatatype_t); + static isc_result_t fetch_name(dns_adbname_t *, isc_boolean_t, +- dns_rdatatype_t); ++ unsigned int, dns_rdatatype_t); + static inline void check_exit(dns_adb_t *); + static void destroy(dns_adb_t *); + static isc_boolean_t shutdown_names(dns_adb_t *); +@@ -984,7 +985,7 @@ kill_name(dns_adbname_t **n, isc_eventtype_t ev) { + * Clean up the name's various lists. These two are destructive + * in that they will always empty the list. + */ +- clean_finds_at_name(name, ev, DNS_ADBFIND_ADDRESSMASK); ++ clean_finds_at_name(name, ev, 0, DNS_ADBFIND_ADDRESSMASK); + result4 = clean_namehooks(adb, &name->v4); + result6 = clean_namehooks(adb, &name->v6); + clean_target(adb, &name->target); +@@ -1409,7 +1410,7 @@ event_free(isc_event_t *event) { + */ + static void + clean_finds_at_name(dns_adbname_t *name, isc_eventtype_t evtype, +- unsigned int addrs) ++ isc_uint32_t qtotal, unsigned int addrs) + { + isc_event_t *ev; + isc_task_t *task; +@@ -1469,6 +1470,7 @@ clean_finds_at_name(dns_adbname_t *name, isc_eventtype_t evtype, + ev->ev_sender = find; + find->result_v4 = find_err_map[name->fetch_err]; + find->result_v6 = find_err_map[name->fetch6_err]; ++ find->qtotal += qtotal; + ev->ev_type = evtype; + ev->ev_destroy = event_free; + ev->ev_destroy_arg = find; +@@ -1827,6 +1829,7 @@ new_adbfind(dns_adb_t *adb) { + h->flags = 0; + h->result_v4 = ISC_R_UNEXPECTED; + h->result_v6 = ISC_R_UNEXPECTED; ++ h->qtotal = 0; + ISC_LINK_INIT(h, publink); + ISC_LINK_INIT(h, plink); + ISC_LIST_INIT(h->list); +@@ -2799,6 +2802,19 @@ dns_adb_createfind(dns_adb_t *adb, isc_task_t *task, isc_taskaction_t action, + isc_stdtime_t now, dns_name_t *target, + in_port_t port, dns_adbfind_t **findp) + { ++ return (dns_adb_createfind2(adb, task, action, arg, name, ++ qname, qtype, options, now, ++ target, port, 0, findp)); ++} ++ ++isc_result_t ++dns_adb_createfind2(dns_adb_t *adb, isc_task_t *task, isc_taskaction_t action, ++ void *arg, dns_name_t *name, dns_name_t *qname, ++ dns_rdatatype_t qtype, unsigned int options, ++ isc_stdtime_t now, dns_name_t *target, ++ in_port_t port, unsigned int depth, ++ dns_adbfind_t **findp) ++{ + dns_adbfind_t *find; + dns_adbname_t *adbname; + int bucket; +@@ -3029,7 +3045,7 @@ dns_adb_createfind(dns_adb_t *adb, isc_task_t *task, isc_taskaction_t action, + * Start V4. + */ + if (WANT_INET(wanted_fetches) && +- fetch_name(adbname, start_at_zone, ++ fetch_name(adbname, start_at_zone, depth, + dns_rdatatype_a) == ISC_R_SUCCESS) { + DP(DEF_LEVEL, + "dns_adb_createfind: started A fetch for name %p", +@@ -3040,7 +3056,7 @@ dns_adb_createfind(dns_adb_t *adb, isc_task_t *task, isc_taskaction_t action, + * Start V6. + */ + if (WANT_INET6(wanted_fetches) && +- fetch_name(adbname, start_at_zone, ++ fetch_name(adbname, start_at_zone, depth, + dns_rdatatype_aaaa) == ISC_R_SUCCESS) { + DP(DEF_LEVEL, + "dns_adb_createfind: " +@@ -3656,6 +3672,7 @@ fetch_callback(isc_task_t *task, isc_event_t *ev) { + isc_result_t result; + unsigned int address_type; + isc_boolean_t want_check_exit = ISC_FALSE; ++ isc_uint32_t qtotal = 0; + + UNUSED(task); + +@@ -3666,6 +3683,8 @@ fetch_callback(isc_task_t *task, isc_event_t *ev) { + adb = name->adb; + INSIST(DNS_ADB_VALID(adb)); + ++ qtotal = dev->qtotal; ++ + bucket = name->lock_bucket; + LOCK(&adb->namelocks[bucket]); + +@@ -3783,6 +3802,12 @@ fetch_callback(isc_task_t *task, isc_event_t *ev) { + DP(DEF_LEVEL, "adb: fetch of '%s' %s failed: %s", + buf, address_type == DNS_ADBFIND_INET ? "A" : "AAAA", + dns_result_totext(dev->result)); ++ /* ++ * Don't record a failure unless this is the initial ++ * fetch of a chain. ++ */ ++ if (fetch->depth > 1) ++ goto out; + /* XXXMLG Don't pound on bad servers. */ + if (address_type == DNS_ADBFIND_INET) { + name->expire_v4 = ISC_MIN(name->expire_v4, now + 300); +@@ -3814,15 +3839,14 @@ fetch_callback(isc_task_t *task, isc_event_t *ev) { + free_adbfetch(adb, &fetch); + isc_event_free(&ev); + +- clean_finds_at_name(name, ev_status, address_type); ++ clean_finds_at_name(name, ev_status, qtotal, address_type); + + UNLOCK(&adb->namelocks[bucket]); + } + + static isc_result_t +-fetch_name(dns_adbname_t *adbname, +- isc_boolean_t start_at_zone, +- dns_rdatatype_t type) ++fetch_name(dns_adbname_t *adbname, isc_boolean_t start_at_zone, ++ unsigned int depth, dns_rdatatype_t type) + { + isc_result_t result; + dns_adbfetch_t *fetch = NULL; +@@ -3867,12 +3891,14 @@ fetch_name(dns_adbname_t *adbname, + result = ISC_R_NOMEMORY; + goto cleanup; + } +- +- result = dns_resolver_createfetch(adb->view->resolver, &adbname->name, +- type, name, nameservers, NULL, +- options, adb->task, fetch_callback, +- adbname, &fetch->rdataset, NULL, +- &fetch->fetch); ++ fetch->depth = depth; ++ ++ result = dns_resolver_createfetch3(adb->view->resolver, &adbname->name, ++ type, name, nameservers, NULL, ++ NULL, 0, options, depth, adb->task, ++ fetch_callback, adbname, ++ &fetch->rdataset, NULL, ++ &fetch->fetch); + if (result != ISC_R_SUCCESS) + goto cleanup; + +diff --git a/lib/dns/include/dns/adb.h b/lib/dns/include/dns/adb.h +index 35350ff..7501f01 100644 +--- a/lib/dns/include/dns/adb.h ++++ b/lib/dns/include/dns/adb.h +@@ -118,6 +118,8 @@ struct dns_adbfind { + isc_result_t result_v6; /*%< RO: v6 result */ + ISC_LINK(dns_adbfind_t) publink; /*%< RW: client use */ + ++ isc_uint32_t qtotal; ++ + /* Private */ + isc_mutex_t lock; /* locks all below */ + in_port_t port; +@@ -334,6 +336,12 @@ dns_adb_createfind(dns_adb_t *adb, isc_task_t *task, isc_taskaction_t action, + dns_rdatatype_t qtype, unsigned int options, + isc_stdtime_t now, dns_name_t *target, + in_port_t port, dns_adbfind_t **find); ++isc_result_t ++dns_adb_createfind2(dns_adb_t *adb, isc_task_t *task, isc_taskaction_t action, ++ void *arg, dns_name_t *name, dns_name_t *qname, ++ dns_rdatatype_t qtype, unsigned int options, ++ isc_stdtime_t now, dns_name_t *target, in_port_t port, ++ unsigned int depth, dns_adbfind_t **find); + /*%< + * Main interface for clients. The adb will look up the name given in + * "name" and will build up a list of found addresses, and perhaps start +diff --git a/lib/dns/include/dns/resolver.h b/lib/dns/include/dns/resolver.h +index 4e20eb6..c256049 100644 +--- a/lib/dns/include/dns/resolver.h ++++ b/lib/dns/include/dns/resolver.h +@@ -82,6 +82,7 @@ typedef struct dns_fetchevent { + isc_sockaddr_t * client; + dns_messageid_t id; + isc_result_t vresult; ++ isc_uint32_t qtotal; + } dns_fetchevent_t; + + /* +@@ -275,6 +276,18 @@ dns_resolver_createfetch2(dns_resolver_t *res, dns_name_t *name, + dns_rdataset_t *rdataset, + dns_rdataset_t *sigrdataset, + dns_fetch_t **fetchp); ++isc_result_t ++dns_resolver_createfetch3(dns_resolver_t *res, dns_name_t *name, ++ dns_rdatatype_t type, ++ dns_name_t *domain, dns_rdataset_t *nameservers, ++ dns_forwarders_t *forwarders, ++ isc_sockaddr_t *client, isc_uint16_t id, ++ unsigned int options, unsigned int depth, ++ isc_task_t *task, ++ isc_taskaction_t action, void *arg, ++ dns_rdataset_t *rdataset, ++ dns_rdataset_t *sigrdataset, ++ dns_fetch_t **fetchp); + /*%< + * Recurse to answer a question. + * +@@ -576,6 +589,18 @@ dns_resolver_printbadcache(dns_resolver_t *resolver, FILE *fp); + * \li resolver to be valid. + */ + ++void ++dns_resolver_setmaxdepth(dns_resolver_t *resolver, unsigned int maxdepth); ++unsigned int ++dns_resolver_getmaxdepth(dns_resolver_t *resolver); ++/*% ++ * Get and set how many NS indirections will be followed when looking for ++ * nameserver addresses. ++ * ++ * Requires: ++ * \li resolver to be valid. ++ */ ++ + ISC_LANG_ENDDECLS + + #endif /* DNS_RESOLVER_H */ +diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c +index e517dad..6a635b2 100644 +--- a/lib/dns/resolver.c ++++ b/lib/dns/resolver.c +@@ -131,6 +131,16 @@ + #define MAXIMUM_QUERY_TIMEOUT 30 /* The maximum time in seconds for the whole query to live. */ + #endif + ++/* The default maximum number of recursions to follow before giving up. */ ++#ifndef DEFAULT_RECURSION_DEPTH ++#define DEFAULT_RECURSION_DEPTH 7 ++#endif ++ ++/* The default maximum number of iterative queries to allow before giving up. */ ++#ifndef DEFAULT_MAX_QUERIES ++#define DEFAULT_MAX_QUERIES 50 ++#endif ++ + /*% + * Maximum EDNS0 input packet size. + */ +@@ -297,6 +307,7 @@ struct fetchctx { + isc_uint64_t duration; + isc_boolean_t logged; + unsigned int querysent; ++ unsigned int totalqueries; + unsigned int referrals; + unsigned int lamecount; + unsigned int neterr; +@@ -307,6 +318,7 @@ struct fetchctx { + isc_boolean_t timeout; + dns_adbaddrinfo_t *addrinfo; + isc_sockaddr_t *client; ++ unsigned int depth; + }; + + #define FCTX_MAGIC ISC_MAGIC('F', '!', '!', '!') +@@ -419,6 +431,7 @@ struct dns_resolver { + isc_timer_t * spillattimer; + isc_boolean_t zero_no_soa_ttl; + unsigned int query_timeout; ++ unsigned int maxdepth; + + /* Locked by lock. */ + unsigned int references; +@@ -1097,6 +1110,7 @@ fctx_sendevents(fetchctx_t *fctx, isc_result_t result, int line) { + event->result == DNS_R_NCACHENXRRSET); + } + ++ event->qtotal = fctx->totalqueries; + isc_task_sendanddetach(&task, ISC_EVENT_PTR(&event)); + count++; + } +@@ -1537,7 +1551,9 @@ fctx_query(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo, + if (result != ISC_R_SUCCESS) + goto cleanup_dispatch; + } ++ + fctx->querysent++; ++ fctx->totalqueries++; + + ISC_LIST_APPEND(fctx->queries, query, link); + query->fctx->nqueries++; +@@ -2194,9 +2210,10 @@ fctx_finddone(isc_task_t *task, isc_event_t *event) { + */ + INSIST(!SHUTTINGDOWN(fctx)); + fctx->attributes &= ~FCTX_ATTR_ADDRWAIT; +- if (event->ev_type == DNS_EVENT_ADBMOREADDRESSES) ++ if (event->ev_type == DNS_EVENT_ADBMOREADDRESSES) { + want_try = ISC_TRUE; +- else { ++ fctx->totalqueries += find->qtotal; ++ } else { + fctx->findfail++; + if (fctx->pending == 0) { + /* +@@ -2479,12 +2496,13 @@ findname(fetchctx_t *fctx, dns_name_t *name, in_port_t port, + * See what we know about this address. + */ + find = NULL; +- result = dns_adb_createfind(fctx->adb, +- res->buckets[fctx->bucketnum].task, +- fctx_finddone, fctx, name, +- &fctx->name, fctx->type, +- options, now, NULL, +- res->view->dstport, &find); ++ result = dns_adb_createfind2(fctx->adb, ++ res->buckets[fctx->bucketnum].task, ++ fctx_finddone, fctx, name, ++ &fctx->name, fctx->type, ++ options, now, NULL, ++ res->view->dstport, ++ fctx->depth + 1, &find); + if (result != ISC_R_SUCCESS) { + if (result == DNS_R_ALIAS) { + /* +@@ -2592,6 +2610,11 @@ fctx_getaddresses(fetchctx_t *fctx, isc_boolean_t badcache) { + + res = fctx->res; + ++ if (fctx->depth > res->maxdepth) { ++ FCTXTRACE("too much NS indirection"); ++ return (DNS_R_SERVFAIL); ++ } ++ + /* + * Forwarders. + */ +@@ -3030,6 +3053,9 @@ fctx_try(fetchctx_t *fctx, isc_boolean_t retrying, isc_boolean_t badcache) { + + REQUIRE(!ADDRWAIT(fctx)); + ++ if (fctx->totalqueries > DEFAULT_MAX_QUERIES) ++ fctx_done(fctx, DNS_R_SERVFAIL, __LINE__); ++ + addrinfo = fctx_nextaddress(fctx); + if (addrinfo == NULL) { + /* +@@ -3388,6 +3414,7 @@ fctx_start(isc_task_t *task, isc_event_t *event) { + * Normal fctx startup. + */ + fctx->state = fetchstate_active; ++ fctx->totalqueries = 0; + /* + * Reset the control event for later use in shutting down + * the fctx. +@@ -3457,6 +3484,7 @@ fctx_join(fetchctx_t *fctx, isc_task_t *task, isc_sockaddr_t *client, + event->fetch = fetch; + event->client = client; + event->id = id; ++ event->qtotal = 0; + dns_fixedname_init(&event->foundname); + + /* +@@ -3493,7 +3521,8 @@ log_ns_ttl(fetchctx_t *fctx, const char *where) { + static isc_result_t + fctx_create(dns_resolver_t *res, dns_name_t *name, dns_rdatatype_t type, + dns_name_t *domain, dns_rdataset_t *nameservers, +- unsigned int options, unsigned int bucketnum, fetchctx_t **fctxp) ++ unsigned int options, unsigned int bucketnum, unsigned int depth, ++ fetchctx_t **fctxp) + { + fetchctx_t *fctx; + isc_result_t result; +@@ -3545,6 +3574,7 @@ fctx_create(dns_resolver_t *res, dns_name_t *name, dns_rdatatype_t type, + fctx->state = fetchstate_init; + fctx->want_shutdown = ISC_FALSE; + fctx->cloned = ISC_FALSE; ++ fctx->depth = depth; + ISC_LIST_INIT(fctx->queries); + ISC_LIST_INIT(fctx->finds); + ISC_LIST_INIT(fctx->altfinds); +@@ -3563,6 +3593,7 @@ fctx_create(dns_resolver_t *res, dns_name_t *name, dns_rdatatype_t type, + fctx->pending = 0; + fctx->restarts = 0; + fctx->querysent = 0; ++ fctx->totalqueries = 0; + fctx->referrals = 0; + TIME_NOW(&fctx->start); + fctx->timeouts = 0; +@@ -7781,6 +7812,7 @@ dns_resolver_create(dns_view_t *view, + res->spillattimer = NULL; + res->zero_no_soa_ttl = ISC_FALSE; + res->query_timeout = DEFAULT_QUERY_TIMEOUT; ++ res->maxdepth = DEFAULT_RECURSION_DEPTH; + res->nbuckets = ntasks; + res->activebuckets = ntasks; + res->buckets = isc_mem_get(view->mctx, +@@ -8219,9 +8251,9 @@ dns_resolver_createfetch(dns_resolver_t *res, dns_name_t *name, + dns_rdataset_t *sigrdataset, + dns_fetch_t **fetchp) + { +- return (dns_resolver_createfetch2(res, name, type, domain, ++ return (dns_resolver_createfetch3(res, name, type, domain, + nameservers, forwarders, NULL, 0, +- options, task, action, arg, ++ options, 0, task, action, arg, + rdataset, sigrdataset, fetchp)); + } + +@@ -8237,6 +8269,25 @@ dns_resolver_createfetch2(dns_resolver_t *res, dns_name_t *name, + dns_rdataset_t *sigrdataset, + dns_fetch_t **fetchp) + { ++ return (dns_resolver_createfetch3(res, name, type, domain, ++ nameservers, forwarders, client, id, ++ options, 0, task, action, arg, ++ rdataset, sigrdataset, fetchp)); ++} ++ ++isc_result_t ++dns_resolver_createfetch3(dns_resolver_t *res, dns_name_t *name, ++ dns_rdatatype_t type, ++ dns_name_t *domain, dns_rdataset_t *nameservers, ++ dns_forwarders_t *forwarders, ++ isc_sockaddr_t *client, dns_messageid_t id, ++ unsigned int options, unsigned int depth, ++ isc_task_t *task, ++ isc_taskaction_t action, void *arg, ++ dns_rdataset_t *rdataset, ++ dns_rdataset_t *sigrdataset, ++ dns_fetch_t **fetchp) ++{ + dns_fetch_t *fetch; + fetchctx_t *fctx = NULL; + isc_result_t result = ISC_R_SUCCESS; +@@ -8325,11 +8376,12 @@ dns_resolver_createfetch2(dns_resolver_t *res, dns_name_t *name, + + if (fctx == NULL) { + result = fctx_create(res, name, type, domain, nameservers, +- options, bucketnum, &fctx); ++ options, bucketnum, depth, &fctx); + if (result != ISC_R_SUCCESS) + goto unlock; + new_fctx = ISC_TRUE; +- } ++ } else if (fctx->depth > depth) ++ fctx->depth = depth; + + result = fctx_join(fctx, task, client, id, action, arg, + rdataset, sigrdataset, fetch); +@@ -9101,3 +9153,15 @@ dns_resolver_settimeout(dns_resolver_t *resolver, unsigned int seconds) { + + resolver->query_timeout = seconds; + } ++ ++void ++dns_resolver_setmaxdepth(dns_resolver_t *resolver, unsigned int maxdepth) { ++ REQUIRE(VALID_RESOLVER(resolver)); ++ resolver->maxdepth = maxdepth; ++} ++ ++unsigned int ++dns_resolver_getmaxdepth(dns_resolver_t *resolver) { ++ REQUIRE(VALID_RESOLVER(resolver)); ++ return (resolver->maxdepth); ++} +diff --git a/lib/isccfg/namedconf.c b/lib/isccfg/namedconf.c +index bfd4bab..5f8b037 100644 +--- a/lib/isccfg/namedconf.c ++++ b/lib/isccfg/namedconf.c +@@ -1393,6 +1393,7 @@ view_clauses[] = { + { "max-cache-ttl", &cfg_type_uint32, 0 }, + { "max-clients-per-query", &cfg_type_uint32, 0 }, + { "max-ncache-ttl", &cfg_type_uint32, 0 }, ++ { "max-recursion-depth", &cfg_type_uint32, 0 }, + { "max-udp-size", &cfg_type_uint32, 0 }, + { "min-roots", &cfg_type_uint32, CFG_CLAUSEFLAG_NOTIMP }, + { "minimal-responses", &cfg_type_boolean, 0 }, +-- +1.9.1 +
meta/recipes-connectivity/bind/bind_9.9.5.bb +1 -0
@@ -17,6 +17,7 @@ SRC_URI = "ftp://ftp.isc.org/isc/bind9/${PV}/${BPN}-${PV}.tar.gz \ file://named.service \ file://bind9 \ file://init.d-add-support-for-read-only-rootfs.patch \ + file://bind9_9_5-CVE-2014-8500.patch \ " SRC_URI[md5sum] = "e676c65cad5234617ee22f48e328c24e"
Signature · 1 line
1.9.1
PATCH 12/12 packagegroup-self-hosted: add git-perltools
In reply to Armin KusterFrom: Jackie Huang <[email protected]>
git-perltools provides some usefull git tools like:
git-submodule, git-request-pull, git-send-email, git-am, etc.
We should have it added in self-hosted image.
(From OE-Core rev: 4b0cbdc9c94b336f3102d4cce1886842b28ce6d5)
--- meta/recipes-core/packagegroups/packagegroup-self-hosted.bb | 1 + 1 file changed, 1 insertion(+)
meta/recipes-core/packagegroups/packagegroup-self-hosted.bb +1 -0
@@ -120,6 +120,7 @@ RDEPENDS_packagegroup-self-hosted-extended = "\ gettext \ gettext-runtime \ git \ + git-perltools \ grep \ groff \ gzip \
Signature · 1 line
1.9.1
Quoted 11 lines · Armin Kuster
please consider this for inclusion for 1.7.1
Many security fixes and kernel update.The following changes since commit
f4d9d7bc206aaf30ea5c72675df139425a2c8d90:lbdrm: fix build issue. (2014-12-27 08:43:41 -0800)
are available in the git repository at:
git://git.yoctoproject.org/poky-contribakuster/dizzy_1_7_1
http://git.yoctoproject.org/cgit.cgi//log/?h=akuster/dizzy_1_7_1
I've merged this but it was tricky since this isn't based of the current dizzy branch.
Where a patch is rejected (like the sysroot poison one), please drop it and please rebase against the current dizzy head in future.
Cheers,
Richard