[pve-devel] [PATCH access-control] api/ticket: move getting cluster name into an eval

Thomas Lamprecht t.lamprecht at proxmox.com
Mon Nov 26 14:55:02 CET 2018


to avoid a failed login if a broken corosync config is setup

Signed-off-by: Thomas Lamprecht <t.lamprecht at proxmox.com>
---
 PVE/API2/AccessControl.pm | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/PVE/API2/AccessControl.pm b/PVE/API2/AccessControl.pm
index 93f384a..7e6ad39 100644
--- a/PVE/API2/AccessControl.pm
+++ b/PVE/API2/AccessControl.pm
@@ -281,11 +281,14 @@ __PACKAGE__->register_method ({
 
 	if (PVE::Corosync::check_conf_exists(1)) {
 	    if ($rpcenv->check($username, '/', ['Sys.Audit'], 1)) {
-		my $conf = cfs_read_file('corosync.conf');
-		my $totem = PVE::Corosync::totem_config($conf);
-		if ($totem->{cluster_name}) {
-		    $res->{clustername} = $totem->{cluster_name};
-		}
+		eval {
+		    my $conf = cfs_read_file('corosync.conf');
+		    my $totem = PVE::Corosync::totem_config($conf);
+		    if ($totem->{cluster_name}) {
+			$res->{clustername} = $totem->{cluster_name};
+		    }
+		};
+		warn "$@\n" if $@;
 	    }
 	}
 
-- 
2.19.1





More information about the pve-devel mailing list