[pkg-nagios-changes] [Git][nagios-team/icinga2][upstream] New upstream version 2.16.3

Bas Couwenberg (@sebastic) gitlab at salsa.debian.org
Thu Jul 2 15:07:34 BST 2026



Bas Couwenberg pushed to branch upstream at Debian Nagios Maintainer Group / icinga2


Commits:
3b167c49 by Bas Couwenberg at 2026-07-02T15:47:52+02:00
New upstream version 2.16.3
- - - - -


6 changed files:

- AUTHORS
- CHANGELOG.md
- ICINGA2_VERSION
- doc/16-upgrading-icinga-2.md
- lib/base/json-script.cpp
- test/base-json.cpp


Changes:

=====================================
AUTHORS
=====================================
@@ -82,6 +82,7 @@ Dirk Goetz <dirk.goetz at icinga.com>
 Dirk Wening <dirk.wening at netways.de>
 Dirk Melchers <dirk at dirk-melchers.de>
 Dolf Schimmel <dolf at transip.nl>
+Dominik Bay <dominik at bay.sh>
 Dominik Riva <driva at protonmail.com>
 dominik-r-s <43005480+dominik-r-s at users.noreply.github.com>
 Edgar Fuß <ef at math.uni-bonn.de>


=====================================
CHANGELOG.md
=====================================
@@ -7,6 +7,17 @@ documentation before upgrading to a new release.
 
 Released closed milestones can be found on [GitHub](https://github.com/Icinga/icinga2/milestones?state=closed).
 
+## 2.16.3 (2026-07-01)
+
+This is a hotfix release that fixes a regression with the `Json.decode()` DSL function that was introduced in v2.16.2:
+The addition of a second argument to the internal `JsonDecode()` function unintentionally leaked into the DSL as a
+required argument. This version restores the old and intended behavior of `Json.decode()`.
+
+### Changes
+
+* Restore single-argument `Json.decode()` in the DSL (#10921)
+* Add the upgrading documentation for v2.15.1 again, which went missing with the v2.16.0 release (#10916)
+
 ## 2.16.2 (2026-06-29)
 
 This release fixes some critical security vulnerabilities in Icinga 2. Users are advised to upgrade immediately, as two


=====================================
ICINGA2_VERSION
=====================================
@@ -1,2 +1,2 @@
-Version: 2.16.2
+Version: 2.16.3
 Revision: 1


=====================================
doc/16-upgrading-icinga-2.md
=====================================
@@ -54,6 +54,17 @@ alternatives:
 * `ExternalCommandListener` and `LivestatusListener`: Please use the [Icinga 2 API](https://icinga.com/docs/icinga-2/latest/doc/12-icinga2-api/) instead.
 * Windows check-plugins (`check_*.exe`) and `CheckCommand`s: Please use our [PowerShell plugins](https://github.com/Icinga/icinga-powershell-plugins) instead.
 
+## Upgrading to v2.15.1, v2.14.7, or v2.13.13 <a id="upgrading-to-2-15-1"></a>
+
+These three versions include the same fix to the logrotate configuration in `/etc/logrotate.d/icinga2`. As this file is
+tracked as a configuration file by package managers, it may not be updated automatically if it was modified locally.
+After upgrading, make sure to check if there are any files with an extension like `.dpkg-dist` or `.rpmnew` next to it.
+If so, you need to incorporate the changes into your configuration manually.
+
+To verify that the fix was applied correctly, check the contents of `/etc/logrotate.d/icinga2`: If the file uses the
+command `"$DAEMON" internal signal --sig SIGHUP --pid "$pid"` (instead of `kill -HUP "$pid"`), it was upgraded
+correctly.
+
 ## Upgrading to v2.15 <a id="upgrading-to-2-15"></a>
 
 ### Icinga DB <a id="upgrading-to-2-15-icingadb"></a>


=====================================
lib/base/json-script.cpp
=====================================
@@ -15,12 +15,22 @@ static String JsonEncodeShim(const Value& value)
 	return JsonEncode(value);
 }
 
+static Value JsonDecodeShim(const String& data)
+{
+	/* Wrap JsonDecode() so that the DSL function keeps its single-argument
+	 * signature. JsonDecode()'s depthLimit parameter has a default value, but
+	 * function pointers don't carry defaults, so binding it directly would make
+	 * depthLimit a required argument and break Json.decode("..."). See #10913.
+	 */
+	return JsonDecode(data);
+}
+
 INITIALIZE_ONCE([]() {
 	Namespace::Ptr jsonNS = new Namespace(true);
 
 	/* Methods */
 	jsonNS->Set("encode", new Function("Json#encode", JsonEncodeShim, { "value" }, true));
-	jsonNS->Set("decode", new Function("Json#decode", JsonDecode, { "value" }, true));
+	jsonNS->Set("decode", new Function("Json#decode", JsonDecodeShim, { "value" }, true));
 
 	jsonNS->Freeze();
 


=====================================
test/base-json.cpp
=====================================
@@ -10,6 +10,7 @@
 #include "base/io-engine.hpp"
 #include "base/objectlock.hpp"
 #include "base/json.hpp"
+#include "base/scriptglobal.hpp"
 #include "test/utils.hpp"
 #include <boost/algorithm/string/replace.hpp>
 #include <BoostTestTargetConfig.h>
@@ -147,6 +148,20 @@ BOOST_AUTO_TEST_CASE(decode)
 	BOOST_CHECK(uint.IsNumber() && uint.Get<double>() == 23.0);
 }
 
+BOOST_AUTO_TEST_CASE(decode_dsl_single_argument)
+{
+	/* Regression test for #10913: the Json.decode() DSL function must accept a
+	 * single argument. JsonDecode()'s optional depthLimit parameter must not
+	 * leak into the function binding as a required argument.
+	 */
+	Namespace::Ptr systemNS = ScriptGlobal::Get("System");
+	Namespace::Ptr jsonNS = systemNS->Get("Json");
+	Function::Ptr decode = jsonNS->Get("decode");
+
+	BOOST_REQUIRE(decode);
+	BOOST_CHECK_EQUAL(decode->Invoke({ "2" }), Value(2));
+}
+
 BOOST_AUTO_TEST_CASE(invalid1)
 {
 	BOOST_CHECK_THROW(JsonDecode("\"1.7"), std::exception);



View it on GitLab: https://salsa.debian.org/nagios-team/icinga2/-/commit/3b167c4920633f384de0c16d8c76a3a2d4b76756

-- 
View it on GitLab: https://salsa.debian.org/nagios-team/icinga2/-/commit/3b167c4920633f384de0c16d8c76a3a2d4b76756
You're receiving this email because of your account on salsa.debian.org. Manage all notifications: https://salsa.debian.org/-/profile/notifications | Help: https://salsa.debian.org/help


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-nagios-changes/attachments/20260702/7f173fc8/attachment-0001.htm>


More information about the pkg-nagios-changes mailing list