[Openvpn-devel] netcfg: handle ParseFromString result for protobuf 34 (nodiscard)

Message ID 1777879175.767918719@f754.i.mail.ru
State New
Headers show
Series [Openvpn-devel] netcfg: handle ParseFromString result for protobuf 34 (nodiscard) | expand

Commit Message

Дмитрий Романов May 4, 2026, 7:19 a.m. UTC
Hi,

Building openvpn3-linux v26 with protobuf 34.x and GCC 15 fails in
netcfg-dco.cpp: google::protobuf::MessageLite::ParseFromString is now
[[nodiscard]], and the project builds with -Werror, so ignoring the
return value becomes a hard error (-Werror=unused-result).

Check the return value and throw NetCfgException on parse failure,
consistent with other error handling in this file.

This should fix distributions that already ship protobuf 34 (e.g. Arch).

If there is an existing issue on Codeberg for this (e.g. related to
nodiscard / protobuf 34), please link this patch there.

Signed-off-by: Dmitriy Romanov <dromanov2002@mail.ru>

DR

Patch

diff --git a/src/netcfg/netcfg-dco.cpp b/src/netcfg/netcfg-dco.cpp
index 0000000..0000000 100644
--- a/src/netcfg/netcfg-dco.cpp
+++ b/src/netcfg/netcfg-dco.cpp
@@ -264,7 +264,11 @@  void NetCfgDCO::method_new_key(GVariant *params)
     std::string key_config = glib2::Value::Extract<std::string>(params, 1);

     DcoKeyConfig dco_kc;
-    dco_kc.ParseFromString(base64->decode(key_config));
+    if (!dco_kc.ParseFromString(base64->decode(key_config)))
+    {
+        throw NetCfgException("Failed to parse DCO key configuration");
+    }

     auto copyKeyDirection = [](const DcoKeyConfig_KeyDirection &src, KoRekey::KeyDirection &dst)
     {