From 9d861f8baffea61ca7458c18d41eca0dd7e392a8 Mon Sep 17 00:00:00 2001 From: garnier-quentin Date: Mon, 5 Oct 2015 16:52:24 +0200 Subject: [PATCH] + protect more functions --- .../vmware/src/centreon/script/centreon_vmware.pm | 14 +++++++++----- connectors/vmware/src/centreon/vmware/connector.pm | 4 ++++ 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/connectors/vmware/src/centreon/script/centreon_vmware.pm b/connectors/vmware/src/centreon/script/centreon_vmware.pm index 8132acea3..5240a0c1c 100644 --- a/connectors/vmware/src/centreon/script/centreon_vmware.pm +++ b/connectors/vmware/src/centreon/script/centreon_vmware.pm @@ -458,15 +458,19 @@ sub create_vsphere_child { $self->{whoaim} = $options{vsphere_name}; $self->{centreon_vmware_config}->{vsphere_server}->{$self->{whoaim}}->{running} = 0; $self->{centreon_vmware_config}->{vsphere_server}->{$self->{whoaim}}->{ready} = 0; - $self->{logger}->writeLogInfo("Create vsphere sub-process for '" . $options{vsphere_name} . "'"); + $self->{logger}->writeLogInfo("Create vsphere sub-process for '" . $options{vsphere_name} . "'"); my $child_vpshere_pid = fork(); + if (!defined($child_vpshere_pid)) { + $self->{logger}->writeLogError("Cannot fork for '" . $options{vsphere_name} . "': $!"); + return -1; + } if ($child_vpshere_pid == 0) { my $connector = centreon::vmware::connector->new(name => $self->{whoaim}, - modules_registry => $self->{modules_registry}, - module_date_parse_loaded => $self->{module_date_parse_loaded}, - config => $self->{centreon_vmware_config}, - logger => $self->{logger}); + modules_registry => $self->{modules_registry}, + module_date_parse_loaded => $self->{module_date_parse_loaded}, + config => $self->{centreon_vmware_config}, + logger => $self->{logger}); $connector->run(); exit(0); } diff --git a/connectors/vmware/src/centreon/vmware/connector.pm b/connectors/vmware/src/centreon/vmware/connector.pm index 6679c4f26..6b57a40be 100644 --- a/connectors/vmware/src/centreon/vmware/connector.pm +++ b/connectors/vmware/src/centreon/vmware/connector.pm @@ -199,6 +199,10 @@ sub vsphere_event { while (1) { # Process all parts of the message my $message = zmq_recvmsg($backend); + if (!defined($message)) { + $connector->{logger}->writeLogError("zmq_recvmsg error: $!"); + last; + } my $data = zmq_msg_data($message); if ($data =~ /^REQCLIENT\s+(.*)$/msi) {