[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