icinga2/lib/base
Julian Brost 5440fcb950 Limit nesting depth of custom variables
Recently, with fb42312e6c, we've added a limit to
how deeply nested data structures can be created from API requests to limit the
resulting recursion depth when processing them to prevent stack overflows.

However, this resulted in a slight inconsistency (not relevant for security)
where you may create custom variables with different nesting depth limits
depending on the exact way to create them. This change now introduces an
additional validation for custom variables consistently limiting there overall
depth. This was not done yet as part of the security fixes as this also affects
existing configuration in a way that might cause existing configuration now
fail the validation. The limit of 16 should be large enough so that should
affect none or very few users.
2026-07-10 10:15:40 +02:00
..
application-environment.cpp Cache Icinga DB env_id in Application class as well 2026-04-01 12:15:58 +02:00
application-version.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
application.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
application.hpp Cache Icinga DB env_id in Application class as well 2026-04-01 12:15:58 +02:00
application.ti Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
array-script.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
array.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
array.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
atomic-file.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
atomic-file.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
atomic.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
base64.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
base64.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
boolean-script.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
boolean.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
boolean.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
bulker.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
CMakeLists.txt Remove unused execvpe(3) copy 2026-02-05 14:31:01 +01:00
configobject-script.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
configobject.cpp Limit nesting depth of custom variables 2026-07-10 10:15:40 +02:00
configobject.hpp Prevent HTTP requests from creating deeply nested data structures 2026-06-23 15:38:19 +02:00
configobject.ti Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
configtype.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
configtype.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
configuration.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
configuration.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
configuration.ti Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
configwriter.cpp Limit nesting depth of custom variables 2026-07-10 10:15:40 +02:00
configwriter.hpp ConfigWriter::EmitScope: Escape import 2026-04-10 16:35:37 +02:00
console.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
console.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
context.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
context.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
convert.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
convert.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
datetime-script.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
datetime.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
datetime.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
datetime.ti Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
debug.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
debuginfo.cpp Make ShowCodeLocation() show the full line with a LastColumn of 0 2026-03-24 13:53:31 +01:00
debuginfo.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
defer.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
dependencygraph.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
dependencygraph.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
dictionary-script.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
dictionary.cpp Make Dictionary::Remove(Iterator) return the next iterator 2026-07-01 13:45:45 +02:00
dictionary.hpp Make Dictionary::Remove(Iterator) return the next iterator 2026-07-01 13:45:45 +02:00
exception.cpp Consistently use std::exception_ptr 2026-07-02 13:59:48 +02:00
exception.hpp Consistently use std::exception_ptr 2026-07-02 13:59:48 +02:00
fifo.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
fifo.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
filelogger.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
filelogger.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
filelogger.ti Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
function-script.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
function.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
function.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
function.ti Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
functionwrapper.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
generator.hpp Make ValueGenerator more flexible & easy to use 2026-02-10 16:57:56 +01:00
i2-base.hpp Import std::chrono_literals into icinga namespace 2026-02-26 13:31:10 +01:00
initialize.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
initialize.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
intrusive-ptr.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
io-engine.cpp Fix compiler crash on SLES 15.7 arm64 runner 2026-04-16 14:01:49 +02:00
io-engine.hpp Use protected stack for new-style Boost.Asio coroutines 2026-06-23 15:38:19 +02:00
journaldlogger.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
journaldlogger.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
journaldlogger.ti Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
json-script.cpp Restore single-argument Json.decode() in the DSL 2026-06-30 10:42:40 +02:00
json.cpp JsonDecode: include path in JSON depth error 2026-06-23 15:38:19 +02:00
json.hpp JsonDecode: add depth limit 2026-06-23 15:38:19 +02:00
lazy-init.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
library.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
library.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
loader.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
loader.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
logger.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
logger.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
logger.ti Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
math-script.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
namespace-script.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
namespace.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
namespace.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
netstring.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
netstring.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
networkstream.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
networkstream.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
number-script.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
number.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
number.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
object-packer.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
object-packer.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
object-script.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
object.cpp intrusive_ptr_*(): specify memory_order explicitly 2026-06-26 14:45:42 +02:00
object.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
objectlock.cpp ObjectLock: allow to TryLock the mutex 2026-03-02 15:36:59 +01:00
objectlock.hpp ObjectLock: allow to TryLock the mutex 2026-03-02 15:36:59 +01:00
objecttype.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
objecttype.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
perfdatavalue.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
perfdatavalue.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
perfdatavalue.ti Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
primitivetype.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
primitivetype.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
process.cpp Silence -Wmaybe-uninitialized on older compilers 2026-06-25 16:04:55 +02:00
process.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
reference-script.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
reference.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
reference.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
registry.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
ringbuffer.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
ringbuffer.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
scriptframe.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
scriptframe.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
scriptglobal.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
scriptglobal.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
scriptpermission.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
scriptpermission.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
scriptutils.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
scriptutils.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
serializer.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
serializer.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
shared-memory.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
shared-object.hpp intrusive_ptr_*(): specify memory_order explicitly 2026-06-26 14:45:42 +02:00
shared.hpp intrusive_ptr_*(): specify memory_order explicitly 2026-06-26 14:45:42 +02:00
singleton.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
socket.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
socket.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
stacktrace.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
stacktrace.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
statsfunction.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
stdiostream.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
stdiostream.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
stream.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
stream.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
streamlogger.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
streamlogger.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
streamlogger.ti Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
string-script.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
string.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
string.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
sysloglogger.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
sysloglogger.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
sysloglogger.ti Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
tcpsocket.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
tcpsocket.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
threadpool.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
threadpool.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
timer.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
timer.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
tlsstream.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
tlsstream.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
tlsutility.cpp Use const X509_NAME*, not X509_NAME*, on newer OpenSSL 2026-07-07 15:36:04 +02:00
tlsutility.hpp Use const X509_NAME*, not X509_NAME*, on newer OpenSSL 2026-07-07 15:36:04 +02:00
type.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
type.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
typetype-script.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
unix.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
unixsocket.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
unixsocket.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
utility.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
utility.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
value-operators.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
value.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
value.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
wait-group.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
wait-group.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
win32.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
windowseventloglogger-provider.mc Add WindowsEventLogLogger 2021-06-21 15:15:54 +02:00
windowseventloglogger.cpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
windowseventloglogger.hpp Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
windowseventloglogger.ti Replace all existing copyright headers with SPDX headers 2026-02-04 14:00:05 +01:00
workqueue.cpp Consistently use std::exception_ptr 2026-07-02 13:59:48 +02:00
workqueue.hpp Consistently use std::exception_ptr 2026-07-02 13:59:48 +02:00