summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRyan Egesdahl <ryan.egesdahl@mongodb.com>2020-05-15 20:26:18 -0700
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-05-20 20:26:44 +0000
commit1845ea31140161354ff6308296bde3436d0bd5f9 (patch)
treea30365cc9ceed67015c5613fd1dd7705ebb083f0 /src
parent675884128ee61da36b910050153861278f42e8cb (diff)
downloadmongo-1845ea31140161354ff6308296bde3436d0bd5f9.tar.gz
SERVER-48273 SERVER-48273 Backport yaml-cpp CVE fixes from 0.6.3 to 0.6.2
Backport the following yaml-cpp CVE fixes from version 0.6.3 to version 0.6.2: * CVE-2019-6292 * CVE-2019-6285 Also, backport one fix from 0.6.3 for failing VS2017 builds. We were previously downloading a source archive for yaml-cpp. To support easily backporting fixes, it's changed to use git instead.
Diffstat (limited to 'src')
-rw-r--r--src/third_party/SConscript2
-rwxr-xr-xsrc/third_party/scripts/yaml-cpp_get_sources.sh137
-rw-r--r--src/third_party/yaml-cpp-0.6.2/SConscript71
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/.clang-format (renamed from src/third_party/yaml-cpp-0.6.2/.clang-format)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/.codedocs (renamed from src/third_party/yaml-cpp-0.6.2/.codedocs)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/.gitignore (renamed from src/third_party/yaml-cpp-0.6.2/.gitignore)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/.travis.yml (renamed from src/third_party/yaml-cpp-0.6.2/.travis.yml)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/CONTRIBUTING.md (renamed from src/third_party/yaml-cpp-0.6.2/CONTRIBUTING.md)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/LICENSE (renamed from src/third_party/yaml-cpp-0.6.2/LICENSE)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/README.md (renamed from src/third_party/yaml-cpp-0.6.2/README.md)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/anchor.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/anchor.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/binary.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/binary.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/contrib/anchordict.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/contrib/anchordict.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/contrib/graphbuilder.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/contrib/graphbuilder.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/depthguard.h77
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/dll.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/dll.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/emitfromevents.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/emitfromevents.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/emitter.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/emitter.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/emitterdef.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/emitterdef.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/emittermanip.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/emittermanip.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/emitterstyle.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/emitterstyle.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/eventhandler.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/eventhandler.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/exceptions.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/exceptions.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/mark.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/mark.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/convert.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/convert.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/detail/bool_type.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/detail/bool_type.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/detail/impl.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/detail/impl.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/detail/iterator.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/detail/iterator.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/detail/iterator_fwd.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/detail/iterator_fwd.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/detail/memory.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/detail/memory.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/detail/node.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/detail/node.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/detail/node_data.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/detail/node_data.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/detail/node_iterator.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/detail/node_iterator.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/detail/node_ref.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/detail/node_ref.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/emit.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/emit.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/impl.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/impl.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/iterator.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/iterator.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/node.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/node.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/parse.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/parse.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/ptr.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/ptr.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/type.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/type.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/noncopyable.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/noncopyable.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/null.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/null.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/ostream_wrapper.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/ostream_wrapper.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/parser.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/parser.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/stlemitter.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/stlemitter.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/traits.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/traits.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/yaml.h (renamed from src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/yaml.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/install.txt (renamed from src/third_party/yaml-cpp-0.6.2/install.txt)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/binary.cpp (renamed from src/third_party/yaml-cpp-0.6.2/src/binary.cpp)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/collectionstack.h (renamed from src/third_party/yaml-cpp-0.6.2/src/collectionstack.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/contrib/graphbuilder.cpp (renamed from src/third_party/yaml-cpp-0.6.2/src/contrib/graphbuilder.cpp)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/contrib/graphbuilderadapter.cpp (renamed from src/third_party/yaml-cpp-0.6.2/src/contrib/graphbuilderadapter.cpp)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/contrib/graphbuilderadapter.h (renamed from src/third_party/yaml-cpp-0.6.2/src/contrib/graphbuilderadapter.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/convert.cpp (renamed from src/third_party/yaml-cpp-0.6.2/src/convert.cpp)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/depthguard.cpp10
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/directives.cpp (renamed from src/third_party/yaml-cpp-0.6.2/src/directives.cpp)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/directives.h (renamed from src/third_party/yaml-cpp-0.6.2/src/directives.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/emit.cpp (renamed from src/third_party/yaml-cpp-0.6.2/src/emit.cpp)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/emitfromevents.cpp (renamed from src/third_party/yaml-cpp-0.6.2/src/emitfromevents.cpp)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/emitter.cpp (renamed from src/third_party/yaml-cpp-0.6.2/src/emitter.cpp)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/emitterstate.cpp (renamed from src/third_party/yaml-cpp-0.6.2/src/emitterstate.cpp)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/emitterstate.h (renamed from src/third_party/yaml-cpp-0.6.2/src/emitterstate.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/emitterutils.cpp (renamed from src/third_party/yaml-cpp-0.6.2/src/emitterutils.cpp)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/emitterutils.h (renamed from src/third_party/yaml-cpp-0.6.2/src/emitterutils.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/exceptions.cpp (renamed from src/third_party/yaml-cpp-0.6.2/src/exceptions.cpp)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/exp.cpp (renamed from src/third_party/yaml-cpp-0.6.2/src/exp.cpp)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/exp.h (renamed from src/third_party/yaml-cpp-0.6.2/src/exp.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/indentation.h (renamed from src/third_party/yaml-cpp-0.6.2/src/indentation.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/memory.cpp (renamed from src/third_party/yaml-cpp-0.6.2/src/memory.cpp)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/node.cpp (renamed from src/third_party/yaml-cpp-0.6.2/src/node.cpp)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/node_data.cpp (renamed from src/third_party/yaml-cpp-0.6.2/src/node_data.cpp)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/nodebuilder.cpp (renamed from src/third_party/yaml-cpp-0.6.2/src/nodebuilder.cpp)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/nodebuilder.h (renamed from src/third_party/yaml-cpp-0.6.2/src/nodebuilder.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/nodeevents.cpp (renamed from src/third_party/yaml-cpp-0.6.2/src/nodeevents.cpp)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/nodeevents.h (renamed from src/third_party/yaml-cpp-0.6.2/src/nodeevents.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/null.cpp (renamed from src/third_party/yaml-cpp-0.6.2/src/null.cpp)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/ostream_wrapper.cpp (renamed from src/third_party/yaml-cpp-0.6.2/src/ostream_wrapper.cpp)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/parse.cpp (renamed from src/third_party/yaml-cpp-0.6.2/src/parse.cpp)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/parser.cpp (renamed from src/third_party/yaml-cpp-0.6.2/src/parser.cpp)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/ptr_vector.h (renamed from src/third_party/yaml-cpp-0.6.2/src/ptr_vector.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/regex_yaml.cpp (renamed from src/third_party/yaml-cpp-0.6.2/src/regex_yaml.cpp)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/regex_yaml.h (renamed from src/third_party/yaml-cpp-0.6.2/src/regex_yaml.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/regeximpl.h (renamed from src/third_party/yaml-cpp-0.6.2/src/regeximpl.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/scanner.cpp (renamed from src/third_party/yaml-cpp-0.6.2/src/scanner.cpp)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/scanner.h (renamed from src/third_party/yaml-cpp-0.6.2/src/scanner.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/scanscalar.cpp (renamed from src/third_party/yaml-cpp-0.6.2/src/scanscalar.cpp)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/scanscalar.h (renamed from src/third_party/yaml-cpp-0.6.2/src/scanscalar.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/scantag.cpp (renamed from src/third_party/yaml-cpp-0.6.2/src/scantag.cpp)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/scantag.h (renamed from src/third_party/yaml-cpp-0.6.2/src/scantag.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/scantoken.cpp (renamed from src/third_party/yaml-cpp-0.6.2/src/scantoken.cpp)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/setting.h (renamed from src/third_party/yaml-cpp-0.6.2/src/setting.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/simplekey.cpp (renamed from src/third_party/yaml-cpp-0.6.2/src/simplekey.cpp)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/singledocparser.cpp (renamed from src/third_party/yaml-cpp-0.6.2/src/singledocparser.cpp)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/singledocparser.h (renamed from src/third_party/yaml-cpp-0.6.2/src/singledocparser.h)2
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/stream.cpp (renamed from src/third_party/yaml-cpp-0.6.2/src/stream.cpp)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/stream.h (renamed from src/third_party/yaml-cpp-0.6.2/src/stream.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/streamcharsource.h (renamed from src/third_party/yaml-cpp-0.6.2/src/streamcharsource.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/stringsource.h (renamed from src/third_party/yaml-cpp-0.6.2/src/stringsource.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/tag.cpp (renamed from src/third_party/yaml-cpp-0.6.2/src/tag.cpp)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/tag.h (renamed from src/third_party/yaml-cpp-0.6.2/src/tag.h)0
-rw-r--r--src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/token.h (renamed from src/third_party/yaml-cpp-0.6.2/src/token.h)0
102 files changed, 241 insertions, 58 deletions
diff --git a/src/third_party/SConscript b/src/third_party/SConscript
index 8e868e76c52..89f55eb6a72 100644
--- a/src/third_party/SConscript
+++ b/src/third_party/SConscript
@@ -158,7 +158,7 @@ if wiredtiger and not use_system_version_of_library('wiredtiger'):
if not use_system_version_of_library('yaml'):
thirdPartyEnvironmentModifications['yaml'] = {
- 'CPPPATH' : ['#/src/third_party/yaml-cpp' + yamlSuffix + '/include'],
+ 'CPPPATH' : ['#/src/third_party/yaml-cpp' + yamlSuffix + '/yaml-cpp/include'],
'CPPDEFINES' : ['_SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING'] if env.ToolchainIs('msvc') else [],
}
diff --git a/src/third_party/scripts/yaml-cpp_get_sources.sh b/src/third_party/scripts/yaml-cpp_get_sources.sh
index 63e8fe13e65..4b06f88244f 100755
--- a/src/third_party/scripts/yaml-cpp_get_sources.sh
+++ b/src/third_party/scripts/yaml-cpp_get_sources.sh
@@ -1,38 +1,127 @@
#!/bin/bash
+# This script downloads and imports yaml-cpp
+# It can be run on Linux, Mac OS X or Windows WSL.
+# Actual integration into the build system is not done by this script.
-set -o verbose
-set -o errexit
+set -xeuo pipefail
-# This script downloads and import yaml-cpp
-# Yaml-cpp does not use any autotools/cmake/config system to it is a simple import.
-# This script is designed to run on Linux or Mac OS X
-#
-# Yaml-cpp tarballs use the name "yaml-cpp-yaml-cpp-$VERSION" so we need to rename it
-#
-
-VERSION=0.6.2
NAME=yaml-cpp
-TARBALL=$NAME-$VERSION.tar.gz
-TARBALL_DEST_DIR=$NAME-$NAME-$VERSION
-DEST_DIR=`git rev-parse --show-toplevel`/src/third_party/$NAME-$VERSION
+VERSION=0.6.2
+BRANCH="${NAME}-${VERSION}"
+GIT_REPO=https://github.com/jbeder/yaml-cpp.git
+
+GIT_EXE=git
+if grep -q Microsoft /proc/version; then
+ GIT_EXE=git.exe
+fi
+
+DEST_DIR="$("${GIT_EXE}" rev-parse --show-toplevel)/src/third_party/${NAME}-${VERSION}"
+if grep -q Microsoft /proc/version; then
+ DEST_DIR=$(wslpath -u "${DEST_DIR}")
+fi
-if [ ! -f $TARBALL ]; then
- echo "Get tarball"
- wget https://github.com/jbeder/yaml-cpp/archive/$TARBALL
+CLONE_DEST="${DEST_DIR}/${NAME}"
+if grep -q Microsoft /proc/version; then
+ CLONE_DEST=$(wslpath -m "${CLONE_DEST}")
fi
-tar -zxvf $TARBALL
+echo "dest: ${DEST_DIR}"
+
+[[ -d ${CLONE_DEST} ]] && mv "${CLONE_DEST}" "${CLONE_DEST}.old"
+"${GIT_EXE}" clone --branch="${BRANCH}" "${GIT_REPO}" "${CLONE_DEST}"
+
+
+# Apply patches
+
+# These patches are backports for CVE and compile fixes, so we need to remove
+# them when we finally upgrade to a version that has them.
+# TODO: https://jira.mongodb.org/browse/SERVER-48258
+
+# Patch CVE-2019-6292 and CVE-2019-6285
+# We're using diff-tree here because the commit includes a change to a test
+# which doesn't exist in this version, so we exclude it from the patch that
+# gets generated.
+git -C "${CLONE_DEST}" diff-tree -p 4edff1fa5dbfca16fc72d89870841bee89f8ef89 -- \
+ include/yaml-cpp/depthguard.h \
+ src/depthguard.cpp \
+ src/singledocparser.h \
+| git -C "${CLONE_DEST}" apply
-rm -rf $DEST_DIR
+# Fix error C3646 on VS2017 due to _NOEXCEPT override specifier
+git -C "${CLONE_DEST}" cherry-pick -x 0f9a586ca1dc29c2ecb8dd715a315b93e3f40f79
-mv $TARBALL_DEST_DIR $DEST_DIR
# Prune sources
+
echo "Prune tree"
-rm -rf $DEST_DIR/test
-rm -rf $DEST_DIR/util
-rm -f $DEST_DIR/CMakeLists.txt
-rm -f $DEST_DIR/*.cmake*
+rm -rf "${CLONE_DEST}/.git"
+rm -rf "${CLONE_DEST}/test"
+rm -rf "${CLONE_DEST}/util"
+rm -rf "${CLONE_DEST}/docs"
+rm -f "${CLONE_DEST}/BUILD.bazel"
+rm -f "${CLONE_DEST}/WORKSPACE"
+rm -f "${CLONE_DEST}/CMakeLists.txt"
+rm -f "${CLONE_DEST}/"*.cmake*
+rm -f "${CLONE_DEST}/yaml-cpp.pc.in"
+
+[[ -d ${CLONE_DEST}.old ]] && rm -rf "${CLONE_DEST}.old"
+
+
+# Generate the SConscript
+
+( cat > "${DEST_DIR}/SConscript" ) << ___EOF___
+# -*- mode: python; -*-
+# NOTE: This file is auto-generated by "$(basename $0)" - DO NOT EDIT
+
+Import("env")
+
+# Create a new environment since this one doesn't build without errors when using -Wno-virtual-dtor
+env = env.Clone()
+
+try:
+ env['CXXFLAGS'].remove('-Wnon-virtual-dtor')
+ env['CCFLAGS'].remove('-Wall')
+except ValueError:
+ pass
+
+env.InjectThirdParty('yaml', 'CPPDEFINES')
+
+env.Library(
+ target="yaml",
+ source=[
+ "yaml-cpp/src/binary.cpp",
+ "yaml-cpp/src/contrib/graphbuilder.cpp",
+ "yaml-cpp/src/contrib/graphbuilderadapter.cpp",
+ "yaml-cpp/src/convert.cpp",
+ "yaml-cpp/src/depthguard.cpp",
+ "yaml-cpp/src/directives.cpp",
+ "yaml-cpp/src/emit.cpp",
+ "yaml-cpp/src/emitfromevents.cpp",
+ "yaml-cpp/src/emitter.cpp",
+ "yaml-cpp/src/emitterstate.cpp",
+ "yaml-cpp/src/emitterutils.cpp",
+ "yaml-cpp/src/exceptions.cpp",
+ "yaml-cpp/src/exp.cpp",
+ "yaml-cpp/src/memory.cpp",
+ "yaml-cpp/src/node.cpp",
+ "yaml-cpp/src/node_data.cpp",
+ "yaml-cpp/src/nodebuilder.cpp",
+ "yaml-cpp/src/nodeevents.cpp",
+ "yaml-cpp/src/null.cpp",
+ "yaml-cpp/src/ostream_wrapper.cpp",
+ "yaml-cpp/src/parse.cpp",
+ "yaml-cpp/src/parser.cpp",
+ "yaml-cpp/src/regex_yaml.cpp",
+ "yaml-cpp/src/scanner.cpp",
+ "yaml-cpp/src/scanscalar.cpp",
+ "yaml-cpp/src/scantag.cpp",
+ "yaml-cpp/src/scantoken.cpp",
+ "yaml-cpp/src/simplekey.cpp",
+ "yaml-cpp/src/singledocparser.cpp",
+ "yaml-cpp/src/stream.cpp",
+ "yaml-cpp/src/tag.cpp",
+ ])
+___EOF___
-# Note: There are no config.h or other build artifacts to generate
echo "Done"
+
diff --git a/src/third_party/yaml-cpp-0.6.2/SConscript b/src/third_party/yaml-cpp-0.6.2/SConscript
index 72ddf3ecdb8..39747f8ea9a 100644
--- a/src/third_party/yaml-cpp-0.6.2/SConscript
+++ b/src/third_party/yaml-cpp-0.6.2/SConscript
@@ -1,3 +1,6 @@
+# -*- mode: python; -*-
+# NOTE: This file is auto-generated by "yaml-cpp_get_sources.sh" - DO NOT EDIT
+
Import("env")
# Create a new environment since this one doesn't build without errors when using -Wno-virtual-dtor
@@ -11,36 +14,38 @@ except ValueError:
env.InjectThirdParty('yaml', 'CPPDEFINES')
-env.Library("yaml",
- [
- "src/binary.cpp",
- "src/contrib/graphbuilder.cpp",
- "src/contrib/graphbuilderadapter.cpp",
- "src/convert.cpp",
- "src/directives.cpp",
- "src/emit.cpp",
- "src/emitfromevents.cpp",
- "src/emitter.cpp",
- "src/emitterstate.cpp",
- "src/emitterutils.cpp",
- "src/exceptions.cpp",
- "src/exp.cpp",
- "src/memory.cpp",
- "src/node.cpp",
- "src/node_data.cpp",
- "src/nodebuilder.cpp",
- "src/nodeevents.cpp",
- "src/null.cpp",
- "src/ostream_wrapper.cpp",
- "src/parse.cpp",
- "src/parser.cpp",
- "src/regex_yaml.cpp",
- "src/scanner.cpp",
- "src/scanscalar.cpp",
- "src/scantag.cpp",
- "src/scantoken.cpp",
- "src/simplekey.cpp",
- "src/singledocparser.cpp",
- "src/stream.cpp",
- "src/tag.cpp",
- ])
+env.Library(
+ target="yaml",
+ source=[
+ "yaml-cpp/src/binary.cpp",
+ "yaml-cpp/src/contrib/graphbuilder.cpp",
+ "yaml-cpp/src/contrib/graphbuilderadapter.cpp",
+ "yaml-cpp/src/convert.cpp",
+ "yaml-cpp/src/depthguard.cpp",
+ "yaml-cpp/src/directives.cpp",
+ "yaml-cpp/src/emit.cpp",
+ "yaml-cpp/src/emitfromevents.cpp",
+ "yaml-cpp/src/emitter.cpp",
+ "yaml-cpp/src/emitterstate.cpp",
+ "yaml-cpp/src/emitterutils.cpp",
+ "yaml-cpp/src/exceptions.cpp",
+ "yaml-cpp/src/exp.cpp",
+ "yaml-cpp/src/memory.cpp",
+ "yaml-cpp/src/node.cpp",
+ "yaml-cpp/src/node_data.cpp",
+ "yaml-cpp/src/nodebuilder.cpp",
+ "yaml-cpp/src/nodeevents.cpp",
+ "yaml-cpp/src/null.cpp",
+ "yaml-cpp/src/ostream_wrapper.cpp",
+ "yaml-cpp/src/parse.cpp",
+ "yaml-cpp/src/parser.cpp",
+ "yaml-cpp/src/regex_yaml.cpp",
+ "yaml-cpp/src/scanner.cpp",
+ "yaml-cpp/src/scanscalar.cpp",
+ "yaml-cpp/src/scantag.cpp",
+ "yaml-cpp/src/scantoken.cpp",
+ "yaml-cpp/src/simplekey.cpp",
+ "yaml-cpp/src/singledocparser.cpp",
+ "yaml-cpp/src/stream.cpp",
+ "yaml-cpp/src/tag.cpp",
+ ])
diff --git a/src/third_party/yaml-cpp-0.6.2/.clang-format b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/.clang-format
index d6d46fb4165..d6d46fb4165 100644
--- a/src/third_party/yaml-cpp-0.6.2/.clang-format
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/.clang-format
diff --git a/src/third_party/yaml-cpp-0.6.2/.codedocs b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/.codedocs
index 02e438213a7..02e438213a7 100644
--- a/src/third_party/yaml-cpp-0.6.2/.codedocs
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/.codedocs
diff --git a/src/third_party/yaml-cpp-0.6.2/.gitignore b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/.gitignore
index 567609b1234..567609b1234 100644
--- a/src/third_party/yaml-cpp-0.6.2/.gitignore
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/.gitignore
diff --git a/src/third_party/yaml-cpp-0.6.2/.travis.yml b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/.travis.yml
index d0b6a04efec..d0b6a04efec 100644
--- a/src/third_party/yaml-cpp-0.6.2/.travis.yml
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/.travis.yml
diff --git a/src/third_party/yaml-cpp-0.6.2/CONTRIBUTING.md b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/CONTRIBUTING.md
index cd09a1aca80..cd09a1aca80 100644
--- a/src/third_party/yaml-cpp-0.6.2/CONTRIBUTING.md
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/CONTRIBUTING.md
diff --git a/src/third_party/yaml-cpp-0.6.2/LICENSE b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/LICENSE
index 991fdbbe7d3..991fdbbe7d3 100644
--- a/src/third_party/yaml-cpp-0.6.2/LICENSE
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/LICENSE
diff --git a/src/third_party/yaml-cpp-0.6.2/README.md b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/README.md
index f33d3503a15..f33d3503a15 100644
--- a/src/third_party/yaml-cpp-0.6.2/README.md
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/README.md
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/anchor.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/anchor.h
index 06759c724d2..06759c724d2 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/anchor.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/anchor.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/binary.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/binary.h
index 29d5dbd027a..29d5dbd027a 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/binary.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/binary.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/contrib/anchordict.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/contrib/anchordict.h
index 78db9ec9288..78db9ec9288 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/contrib/anchordict.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/contrib/anchordict.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/contrib/graphbuilder.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/contrib/graphbuilder.h
index f0a38f28873..f0a38f28873 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/contrib/graphbuilder.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/contrib/graphbuilder.h
diff --git a/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/depthguard.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/depthguard.h
new file mode 100644
index 00000000000..8ca61ac6ccc
--- /dev/null
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/depthguard.h
@@ -0,0 +1,77 @@
+#ifndef DEPTH_GUARD_H_00000000000000000000000000000000000000000000000000000000
+#define DEPTH_GUARD_H_00000000000000000000000000000000000000000000000000000000
+
+#if defined(_MSC_VER) || \
+ (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
+ (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
+#pragma once
+#endif
+
+#include "exceptions.h"
+
+namespace YAML {
+
+/**
+ * @brief The DeepRecursion class
+ * An exception class which is thrown by DepthGuard. Ideally it should be
+ * a member of DepthGuard. However, DepthGuard is a templated class which means
+ * that any catch points would then need to know the template parameters. It is
+ * simpler for clients to not have to know at the catch point what was the
+ * maximum depth.
+ */
+class DeepRecursion : public ParserException {
+public:
+ virtual ~DeepRecursion() = default;
+
+ DeepRecursion(int depth, const Mark& mark_, const std::string& msg_);
+
+ // Returns the recursion depth when the exception was thrown
+ int depth() const {
+ return m_depth;
+ }
+
+private:
+ int m_depth = 0;
+};
+
+/**
+ * @brief The DepthGuard class
+ * DepthGuard takes a reference to an integer. It increments the integer upon
+ * construction of DepthGuard and decrements the integer upon destruction.
+ *
+ * If the integer would be incremented past max_depth, then an exception is
+ * thrown. This is ideally geared toward guarding against deep recursion.
+ *
+ * @param max_depth
+ * compile-time configurable maximum depth.
+ */
+template <int max_depth = 2000>
+class DepthGuard final {
+public:
+ DepthGuard(int & depth_, const Mark& mark_, const std::string& msg_) : m_depth(depth_) {
+ ++m_depth;
+ if ( max_depth <= m_depth ) {
+ throw DeepRecursion{m_depth, mark_, msg_};
+ }
+ }
+
+ DepthGuard(const DepthGuard & copy_ctor) = delete;
+ DepthGuard(DepthGuard && move_ctor) = delete;
+ DepthGuard & operator=(const DepthGuard & copy_assign) = delete;
+ DepthGuard & operator=(DepthGuard && move_assign) = delete;
+
+ ~DepthGuard() {
+ --m_depth;
+ }
+
+ int current_depth() const {
+ return m_depth;
+ }
+
+private:
+ int & m_depth;
+};
+
+} // namespace YAML
+
+#endif // DEPTH_GUARD_H_00000000000000000000000000000000000000000000000000000000
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/dll.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/dll.h
index a32c06b2e30..a32c06b2e30 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/dll.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/dll.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/emitfromevents.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/emitfromevents.h
index f14b051ab0e..f14b051ab0e 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/emitfromevents.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/emitfromevents.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/emitter.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/emitter.h
index ef92cc4035b..ef92cc4035b 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/emitter.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/emitter.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/emitterdef.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/emitterdef.h
index 0b426957fae..0b426957fae 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/emitterdef.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/emitterdef.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/emittermanip.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/emittermanip.h
index 89f7256714e..89f7256714e 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/emittermanip.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/emittermanip.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/emitterstyle.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/emitterstyle.h
index 67bb3981b12..67bb3981b12 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/emitterstyle.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/emitterstyle.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/eventhandler.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/eventhandler.h
index efe381c6218..efe381c6218 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/eventhandler.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/eventhandler.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/exceptions.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/exceptions.h
index 87b92f5e946..87b92f5e946 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/exceptions.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/exceptions.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/mark.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/mark.h
index bf94b4f41fc..bf94b4f41fc 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/mark.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/mark.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/convert.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/convert.h
index 45a878ab0c0..45a878ab0c0 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/convert.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/convert.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/detail/bool_type.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/detail/bool_type.h
index 2c80705c9ae..2c80705c9ae 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/detail/bool_type.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/detail/bool_type.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/detail/impl.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/detail/impl.h
index 09e55f838c2..09e55f838c2 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/detail/impl.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/detail/impl.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/detail/iterator.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/detail/iterator.h
index deec8fb62cd..deec8fb62cd 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/detail/iterator.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/detail/iterator.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/detail/iterator_fwd.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/detail/iterator_fwd.h
index 5f1ffe7436d..5f1ffe7436d 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/detail/iterator_fwd.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/detail/iterator_fwd.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/detail/memory.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/detail/memory.h
index 8f2bc2657a2..8f2bc2657a2 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/detail/memory.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/detail/memory.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/detail/node.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/detail/node.h
index 8a776f62a9e..8a776f62a9e 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/detail/node.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/detail/node.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/detail/node_data.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/detail/node_data.h
index 50bcd74352d..50bcd74352d 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/detail/node_data.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/detail/node_data.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/detail/node_iterator.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/detail/node_iterator.h
index 088090fe743..088090fe743 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/detail/node_iterator.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/detail/node_iterator.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/detail/node_ref.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/detail/node_ref.h
index d8a94f8b804..d8a94f8b804 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/detail/node_ref.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/detail/node_ref.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/emit.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/emit.h
index 032268c5d04..032268c5d04 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/emit.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/emit.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/impl.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/impl.h
index 20c487a687f..20c487a687f 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/impl.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/impl.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/iterator.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/iterator.h
index 366a9c807fe..366a9c807fe 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/iterator.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/iterator.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/node.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/node.h
index 1ded7d27b72..1ded7d27b72 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/node.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/node.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/parse.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/parse.h
index 7745fd7245b..7745fd7245b 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/parse.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/parse.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/ptr.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/ptr.h
index ce085dd5cd8..ce085dd5cd8 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/ptr.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/ptr.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/type.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/type.h
index 9d55ca96621..9d55ca96621 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/node/type.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/node/type.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/noncopyable.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/noncopyable.h
index a261040739b..a261040739b 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/noncopyable.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/noncopyable.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/null.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/null.h
index b9521d488a6..b9521d488a6 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/null.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/null.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/ostream_wrapper.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/ostream_wrapper.h
index 09d45f39b78..09d45f39b78 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/ostream_wrapper.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/ostream_wrapper.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/parser.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/parser.h
index ceac22d0268..ceac22d0268 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/parser.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/parser.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/stlemitter.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/stlemitter.h
index 06780c861f1..06780c861f1 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/stlemitter.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/stlemitter.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/traits.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/traits.h
index f33d0e1f637..f33d0e1f637 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/traits.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/traits.h
diff --git a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/yaml.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/yaml.h
index 7f515efb961..7f515efb961 100644
--- a/src/third_party/yaml-cpp-0.6.2/include/yaml-cpp/yaml.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/include/yaml-cpp/yaml.h
diff --git a/src/third_party/yaml-cpp-0.6.2/install.txt b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/install.txt
index 939236249bf..939236249bf 100644
--- a/src/third_party/yaml-cpp-0.6.2/install.txt
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/install.txt
diff --git a/src/third_party/yaml-cpp-0.6.2/src/binary.cpp b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/binary.cpp
index a7e51301b82..a7e51301b82 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/binary.cpp
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/binary.cpp
diff --git a/src/third_party/yaml-cpp-0.6.2/src/collectionstack.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/collectionstack.h
index 2302786e037..2302786e037 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/collectionstack.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/collectionstack.h
diff --git a/src/third_party/yaml-cpp-0.6.2/src/contrib/graphbuilder.cpp b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/contrib/graphbuilder.cpp
index 416c1359db6..416c1359db6 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/contrib/graphbuilder.cpp
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/contrib/graphbuilder.cpp
diff --git a/src/third_party/yaml-cpp-0.6.2/src/contrib/graphbuilderadapter.cpp b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/contrib/graphbuilderadapter.cpp
index 02a3d972a50..02a3d972a50 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/contrib/graphbuilderadapter.cpp
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/contrib/graphbuilderadapter.cpp
diff --git a/src/third_party/yaml-cpp-0.6.2/src/contrib/graphbuilderadapter.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/contrib/graphbuilderadapter.h
index 0d1e579208c..0d1e579208c 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/contrib/graphbuilderadapter.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/contrib/graphbuilderadapter.h
diff --git a/src/third_party/yaml-cpp-0.6.2/src/convert.cpp b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/convert.cpp
index ec05b77826b..ec05b77826b 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/convert.cpp
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/convert.cpp
diff --git a/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/depthguard.cpp b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/depthguard.cpp
new file mode 100644
index 00000000000..b88cd340dc2
--- /dev/null
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/depthguard.cpp
@@ -0,0 +1,10 @@
+#include "yaml-cpp/depthguard.h"
+
+namespace YAML {
+
+DeepRecursion::DeepRecursion(int depth, const Mark& mark_, const std::string& msg_)
+ : ParserException(mark_, msg_),
+ m_depth(depth) {
+}
+
+} // namespace YAML
diff --git a/src/third_party/yaml-cpp-0.6.2/src/directives.cpp b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/directives.cpp
index 963bd2cd379..963bd2cd379 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/directives.cpp
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/directives.cpp
diff --git a/src/third_party/yaml-cpp-0.6.2/src/directives.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/directives.h
index 333af26e374..333af26e374 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/directives.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/directives.h
diff --git a/src/third_party/yaml-cpp-0.6.2/src/emit.cpp b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/emit.cpp
index 51bc791533d..51bc791533d 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/emit.cpp
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/emit.cpp
diff --git a/src/third_party/yaml-cpp-0.6.2/src/emitfromevents.cpp b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/emitfromevents.cpp
index 4832649f3c7..4832649f3c7 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/emitfromevents.cpp
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/emitfromevents.cpp
diff --git a/src/third_party/yaml-cpp-0.6.2/src/emitter.cpp b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/emitter.cpp
index ebeb059554e..ebeb059554e 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/emitter.cpp
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/emitter.cpp
diff --git a/src/third_party/yaml-cpp-0.6.2/src/emitterstate.cpp b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/emitterstate.cpp
index 3542aaf5071..3542aaf5071 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/emitterstate.cpp
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/emitterstate.cpp
diff --git a/src/third_party/yaml-cpp-0.6.2/src/emitterstate.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/emitterstate.h
index 0937f000d9f..0937f000d9f 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/emitterstate.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/emitterstate.h
diff --git a/src/third_party/yaml-cpp-0.6.2/src/emitterutils.cpp b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/emitterutils.cpp
index 147738ad8a1..147738ad8a1 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/emitterutils.cpp
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/emitterutils.cpp
diff --git a/src/third_party/yaml-cpp-0.6.2/src/emitterutils.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/emitterutils.h
index 6cc73191476..6cc73191476 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/emitterutils.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/emitterutils.h
diff --git a/src/third_party/yaml-cpp-0.6.2/src/exceptions.cpp b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/exceptions.cpp
index 841549e0dfb..841549e0dfb 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/exceptions.cpp
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/exceptions.cpp
diff --git a/src/third_party/yaml-cpp-0.6.2/src/exp.cpp b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/exp.cpp
index 695440aec0e..695440aec0e 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/exp.cpp
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/exp.cpp
diff --git a/src/third_party/yaml-cpp-0.6.2/src/exp.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/exp.h
index 7c02cf6e451..7c02cf6e451 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/exp.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/exp.h
diff --git a/src/third_party/yaml-cpp-0.6.2/src/indentation.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/indentation.h
index 1a2ccaea2e1..1a2ccaea2e1 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/indentation.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/indentation.h
diff --git a/src/third_party/yaml-cpp-0.6.2/src/memory.cpp b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/memory.cpp
index e5f8a9d3f8c..e5f8a9d3f8c 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/memory.cpp
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/memory.cpp
diff --git a/src/third_party/yaml-cpp-0.6.2/src/node.cpp b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/node.cpp
index 2088e13c9ae..2088e13c9ae 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/node.cpp
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/node.cpp
diff --git a/src/third_party/yaml-cpp-0.6.2/src/node_data.cpp b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/node_data.cpp
index 77cd4657806..77cd4657806 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/node_data.cpp
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/node_data.cpp
diff --git a/src/third_party/yaml-cpp-0.6.2/src/nodebuilder.cpp b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/nodebuilder.cpp
index 093d2efeb77..093d2efeb77 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/nodebuilder.cpp
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/nodebuilder.cpp
diff --git a/src/third_party/yaml-cpp-0.6.2/src/nodebuilder.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/nodebuilder.h
index a6a47f007bb..a6a47f007bb 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/nodebuilder.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/nodebuilder.h
diff --git a/src/third_party/yaml-cpp-0.6.2/src/nodeevents.cpp b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/nodeevents.cpp
index 82261feb058..82261feb058 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/nodeevents.cpp
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/nodeevents.cpp
diff --git a/src/third_party/yaml-cpp-0.6.2/src/nodeevents.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/nodeevents.h
index 49c18eb854a..49c18eb854a 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/nodeevents.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/nodeevents.h
diff --git a/src/third_party/yaml-cpp-0.6.2/src/null.cpp b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/null.cpp
index d12dd08ce4b..d12dd08ce4b 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/null.cpp
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/null.cpp
diff --git a/src/third_party/yaml-cpp-0.6.2/src/ostream_wrapper.cpp b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/ostream_wrapper.cpp
index 357fc0094c4..357fc0094c4 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/ostream_wrapper.cpp
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/ostream_wrapper.cpp
diff --git a/src/third_party/yaml-cpp-0.6.2/src/parse.cpp b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/parse.cpp
index 0b2ae4a4f6e..0b2ae4a4f6e 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/parse.cpp
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/parse.cpp
diff --git a/src/third_party/yaml-cpp-0.6.2/src/parser.cpp b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/parser.cpp
index cd69f39fcec..cd69f39fcec 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/parser.cpp
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/parser.cpp
diff --git a/src/third_party/yaml-cpp-0.6.2/src/ptr_vector.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/ptr_vector.h
index 955aebd8d56..955aebd8d56 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/ptr_vector.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/ptr_vector.h
diff --git a/src/third_party/yaml-cpp-0.6.2/src/regex_yaml.cpp b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/regex_yaml.cpp
index 20b772051d2..20b772051d2 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/regex_yaml.cpp
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/regex_yaml.cpp
diff --git a/src/third_party/yaml-cpp-0.6.2/src/regex_yaml.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/regex_yaml.h
index 8f28b852a29..8f28b852a29 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/regex_yaml.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/regex_yaml.h
diff --git a/src/third_party/yaml-cpp-0.6.2/src/regeximpl.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/regeximpl.h
index 709124f0088..709124f0088 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/regeximpl.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/regeximpl.h
diff --git a/src/third_party/yaml-cpp-0.6.2/src/scanner.cpp b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/scanner.cpp
index b5cfcc12b22..b5cfcc12b22 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/scanner.cpp
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/scanner.cpp
diff --git a/src/third_party/yaml-cpp-0.6.2/src/scanner.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/scanner.h
index 7bb2ccc71a5..7bb2ccc71a5 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/scanner.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/scanner.h
diff --git a/src/third_party/yaml-cpp-0.6.2/src/scanscalar.cpp b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/scanscalar.cpp
index 10e359d4466..10e359d4466 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/scanscalar.cpp
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/scanscalar.cpp
diff --git a/src/third_party/yaml-cpp-0.6.2/src/scanscalar.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/scanscalar.h
index c3a574ad9b6..c3a574ad9b6 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/scanscalar.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/scanscalar.h
diff --git a/src/third_party/yaml-cpp-0.6.2/src/scantag.cpp b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/scantag.cpp
index c5b39652ad0..c5b39652ad0 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/scantag.cpp
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/scantag.cpp
diff --git a/src/third_party/yaml-cpp-0.6.2/src/scantag.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/scantag.h
index 522ba5495e8..522ba5495e8 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/scantag.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/scantag.h
diff --git a/src/third_party/yaml-cpp-0.6.2/src/scantoken.cpp b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/scantoken.cpp
index fd8758d7815..fd8758d7815 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/scantoken.cpp
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/scantoken.cpp
diff --git a/src/third_party/yaml-cpp-0.6.2/src/setting.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/setting.h
index b78d40e2e85..b78d40e2e85 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/setting.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/setting.h
diff --git a/src/third_party/yaml-cpp-0.6.2/src/simplekey.cpp b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/simplekey.cpp
index 70f56b6ae42..70f56b6ae42 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/simplekey.cpp
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/simplekey.cpp
diff --git a/src/third_party/yaml-cpp-0.6.2/src/singledocparser.cpp b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/singledocparser.cpp
index a27c1c3b04d..a27c1c3b04d 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/singledocparser.cpp
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/singledocparser.cpp
diff --git a/src/third_party/yaml-cpp-0.6.2/src/singledocparser.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/singledocparser.h
index 2b92067cddb..fa7f1170a1d 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/singledocparser.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/singledocparser.h
@@ -16,6 +16,7 @@
namespace YAML {
class CollectionStack;
+template <int> class DepthGuard; // depthguard.h
class EventHandler;
class Node;
class Scanner;
@@ -51,6 +52,7 @@ class SingleDocParser : private noncopyable {
anchor_t LookupAnchor(const Mark& mark, const std::string& name) const;
private:
+ int depth = 0;
Scanner& m_scanner;
const Directives& m_directives;
std::unique_ptr<CollectionStack> m_pCollectionStack;
diff --git a/src/third_party/yaml-cpp-0.6.2/src/stream.cpp b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/stream.cpp
index 3b013cfa7d3..3b013cfa7d3 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/stream.cpp
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/stream.cpp
diff --git a/src/third_party/yaml-cpp-0.6.2/src/stream.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/stream.h
index 42d542d5b16..42d542d5b16 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/stream.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/stream.h
diff --git a/src/third_party/yaml-cpp-0.6.2/src/streamcharsource.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/streamcharsource.h
index 624599e65da..624599e65da 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/streamcharsource.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/streamcharsource.h
diff --git a/src/third_party/yaml-cpp-0.6.2/src/stringsource.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/stringsource.h
index 6fee44bb288..6fee44bb288 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/stringsource.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/stringsource.h
diff --git a/src/third_party/yaml-cpp-0.6.2/src/tag.cpp b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/tag.cpp
index 51435520e46..51435520e46 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/tag.cpp
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/tag.cpp
diff --git a/src/third_party/yaml-cpp-0.6.2/src/tag.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/tag.h
index ac30673b9e8..ac30673b9e8 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/tag.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/tag.h
diff --git a/src/third_party/yaml-cpp-0.6.2/src/token.h b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/token.h
index ad0b7d0a005..ad0b7d0a005 100644
--- a/src/third_party/yaml-cpp-0.6.2/src/token.h
+++ b/src/third_party/yaml-cpp-0.6.2/yaml-cpp/src/token.h