Attention is currently required from: Antonio Quartulli, Arne Schwabe, Răzvan 
Cojocaru.

Hello Antonio Quartulli, Arne Schwabe,

I'd like you to reexamine a change. Please visit

    https://gerrit.openvpn.net/c/openvpn/+/2161?usp=email

to look at the new patch set (#2).

The following approvals got outdated and were removed:
Code-Review+2 by Antonio Quartulli

The change is no longer submittable: Code-Review and checks~ChecksSubmitRule 
are unsatisfied now.


Change subject: openvpnserv: only remove search domains that were added
......................................................................

openvpnserv: only remove search domains that were added

When AddDnsSearchDomains() failed, SetDnsSearchDomains() still called
RemoveDnsSearchDomains() with the new domains, which removes matching
domains already in the search list, e.g. ones configured before the
VPN connected. Record the undo data first, as done for NRPT rules, and
drop it if adding the domains fails.

Broken since ae90cbad ("dns: support multiple domains without DHCP").

Change-Id: I7ffae4da3b29521844a31d234fe6a9dd08954cf4
Signed-off-by: Razvan Cojocaru <[email protected]>
---
M src/openvpnserv/interactive.c
1 file changed, 10 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.openvpn.net:29418/openvpn refs/changes/61/2161/2

diff --git a/src/openvpnserv/interactive.c b/src/openvpnserv/interactive.c
index 81205d6..5d2abeb 100644
--- a/src/openvpnserv/interactive.c
+++ b/src/openvpnserv/interactive.c
@@ -1823,13 +1823,19 @@
         strncpy_s(undo_data->itf_name, sizeof(undo_data->itf_name), itf_name, 
_TRUNCATE);
         undo_data->domains = wide_domains;

-        if (AddDnsSearchDomains(list_key, have_list, wide_domains) == FALSE
-            || AddListItem(&(*lists)[undo_domains], undo_data) != NO_ERROR)
+        /* Add undo information first in case there's no heap left */
+        if (AddListItem(&(*lists)[undo_domains], undo_data) != NO_ERROR)
         {
-            RemoveDnsSearchDomains(list_key, wide_domains);
             free(wide_domains);
             free(undo_data);
-            undo_data = NULL;
+            goto out;
+        }
+
+        if (!AddDnsSearchDomains(list_key, have_list, wide_domains))
+        {
+            RemoveListItem(&(*lists)[undo_domains], CmpAny, NULL);
+            free(wide_domains);
+            free(undo_data);
             goto out;
         }
     }

--
To view, visit https://gerrit.openvpn.net/c/openvpn/+/2161?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.openvpn.net/settings?usp=email

Gerrit-MessageType: newpatchset
Gerrit-Project: openvpn
Gerrit-Branch: master
Gerrit-Change-Id: I7ffae4da3b29521844a31d234fe6a9dd08954cf4
Gerrit-Change-Number: 2161
Gerrit-PatchSet: 2
Gerrit-Owner: Răzvan Cojocaru <[email protected]>
Gerrit-Reviewer: Antonio Quartulli <[email protected]>
Gerrit-Reviewer: Arne Schwabe <[email protected]>
Gerrit-CC: openvpn-devel <[email protected]>
Gerrit-Attention: Antonio Quartulli <[email protected]>
Gerrit-Attention: Răzvan Cojocaru <[email protected]>
Gerrit-Attention: Arne Schwabe <[email protected]>
_______________________________________________
Openvpn-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openvpn-devel

Reply via email to