[Openvpn-devel,v1] openvpnserv: close the NRPT base key in HandleDNSConfigNrptMessage()

Message ID 20261106162251.2926-1-gert@greenie.muc.de
State New
Headers
Series [Openvpn-devel,v1] openvpnserv: close the NRPT base key in HandleDNSConfigNrptMessage() |

Commit Message

Gert Doering Nov. 6, 2026, 4:22 p.m. UTC
  From: Razvan Cojocaru <razvanc@mailbox.org>

The key opened by OpenNrptBaseKey() was never closed, leaking a
registry handle on every NRPT add message. Close it at the common
exit, and return directly if opening fails, as the key is not set
then.

Broken since 0f3b7d17 ("win: implement --dns option support with
NRPT").

Change-Id: Ib7b9f2994ca828ea699bc6e5b08193dd30965926
Signed-off-by: Razvan Cojocaru <razvanc@mailbox.org>
Acked-by: Frank Lichtenheld <frank@lichtenheld.com>
Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/2144
---

This change was reviewed on Gerrit and approved by at least one
developer. I request to merge it to master.

Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/2144
This mail reflects revision 1 of this Change.

Acked-by according to Gerrit (reflected above):
Frank Lichtenheld <frank@lichtenheld.com>
  

Patch

diff --git a/src/openvpnserv/interactive.c b/src/openvpnserv/interactive.c
index 6a83bac..81205d6 100644
--- a/src/openvpnserv/interactive.c
+++ b/src/openvpnserv/interactive.c
@@ -3014,7 +3014,7 @@ 
     LSTATUS err = OpenNrptBaseKey(&key, &gpol_nrpt);
     if (err)
     {
-        goto out;
+        return err;
     }
 
     /* Add undo information first in case there's no heap left */
@@ -3065,6 +3065,7 @@ 
     ApplyDnsSettings(gpol_nrpt || gpol_list);
 
 out:
+    RegCloseKey(key);
     return err;
 }