From mboxrd@z Thu Jan 1 00:00:00 1970 From: Erik Kapfer <ummeegge@ipfire.org> To: development@lists.ipfire.org Subject: [PATCH] OpenVPN: Fix for N2N plausibility checks Date: Wed, 15 Apr 2020 15:24:04 +0200 Message-ID: <20200415132404.25688-1-ummeegge@ipfire.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============3865503431474733058==" List-Id: <development.lists.ipfire.org> --===============3865503431474733058== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Fixes #12335 If no N2N name has been set, no directory and config has been created so it c= an not be deleted. 'goto VPNCONF_ERROR;' has been missing for N2N checks. Fixed also code formatting. Signed-off-by: Erik Kapfer <ummeegge(a)ipfire.org> --- html/cgi-bin/ovpnmain.cgi | 55 ++++++++++++++++++++++++---------------------= -- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/html/cgi-bin/ovpnmain.cgi b/html/cgi-bin/ovpnmain.cgi index 00ecd77a0..1e61ddb42 100644 --- a/html/cgi-bin/ovpnmain.cgi +++ b/html/cgi-bin/ovpnmain.cgi @@ -3765,41 +3765,42 @@ if ($cgiparams{'TYPE'} eq 'host') { #CCD End =20 =09 - if ($cgiparams{'TYPE'} !~ /^(host|net)$/) { - $errormessage =3D $Lang::tr{'connection type is invalid'}; - if ($cgiparams{'TYPE'} eq 'net') { - unlink ("${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}/$cgiparams= {'NAME'}.conf") or die "Removing Configfile fail: $!"; - rmdir ("${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}") || die "Re= moving Directory fail: $!"; - } - goto VPNCONF_ERROR; + if ($cgiparams{'TYPE'} !~ /^(host|net)$/) { + $errormessage =3D $Lang::tr{'connection type is invalid'}; + if ($cgiparams{'TYPE'} eq 'net') { + unlink ("${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}/$cgiparams{'N= AME'}.conf") or die "Removing Configfile fail: $!"; + rmdir ("${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}") || die "Remo= ving Directory fail: $!"; + goto VPNCONF_ERROR; + } + goto VPNCONF_ERROR; } =20 - if ($cgiparams{'NAME'} !~ /^[a-zA-Z0-9]+$/) { - $errormessage =3D $Lang::tr{'name must only contain characters'}; - if ($cgiparams{'TYPE'} eq 'net') { - unlink ("${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}/$cgiparams= {'NAME'}.conf") or die "Removing Configfile fail: $!"; - rmdir ("${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}") || die "Re= moving Directory fail: $!"; - } - goto VPNCONF_ERROR; - } + $errormessage =3D $Lang::tr{'name must only contain characters'}; + if ($cgiparams{'TYPE'} eq 'net') { + goto VPNCONF_ERROR; + } + goto VPNCONF_ERROR; + } =20 if ($cgiparams{'NAME'} =3D~ /^(host|01|block|private|clear|packetdefault)$/= ) { - $errormessage =3D $Lang::tr{'name is invalid'}; - if ($cgiparams{'TYPE'} eq 'net') { - unlink ("${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}/$cgiparams= {'NAME'}.conf") or die "Removing Configfile fail: $!"; - rmdir ("${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}") || die "Re= moving Directory fail: $!"; - } - goto VPNCONF_ERROR; + $errormessage =3D $Lang::tr{'name is invalid'}; + if ($cgiparams{'TYPE'} eq 'net') { + unlink ("${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}/$cgiparams{'N= AME'}.conf") or die "Removing Configfile fail: $!"; + rmdir ("${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}") || die "Remo= ving Directory fail: $!"; + goto VPNCONF_ERROR; + } + goto VPNCONF_ERROR; } =20 if (length($cgiparams{'NAME'}) >60) { - $errormessage =3D $Lang::tr{'name too long'}; - if ($cgiparams{'TYPE'} eq 'net') { - unlink ("${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}/$cgiparams= {'NAME'}.conf") or die "Removing Configfile fail: $!"; - rmdir ("${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}") || die "Re= moving Directory fail: $!"; - } - goto VPNCONF_ERROR; + $errormessage =3D $Lang::tr{'name too long'}; + if ($cgiparams{'TYPE'} eq 'net') { + unlink ("${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}/$cgiparams{'N= AME'}.conf") or die "Removing Configfile fail: $!"; + rmdir ("${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}") || die "Remo= ving Directory fail: $!"; + goto VPNCONF_ERROR; + } + goto VPNCONF_ERROR; } =20 ### --=20 2.12.2 --===============3865503431474733058==--