From 96a9597720f6ace61f686b6461936966dfb471e7 Mon Sep 17 00:00:00 2001 From: Sven Rebhan <36194019+srebhan@users.noreply.github.com> Date: Wed, 9 Aug 2023 17:41:17 +0200 Subject: [PATCH] fix(inputs.opcua_listener): Avoid segfault if subscription was not successful (#13742) --- plugins/inputs/opcua_listener/subscribe_client.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/plugins/inputs/opcua_listener/subscribe_client.go b/plugins/inputs/opcua_listener/subscribe_client.go index a42738df2..872dffc08 100644 --- a/plugins/inputs/opcua_listener/subscribe_client.go +++ b/plugins/inputs/opcua_listener/subscribe_client.go @@ -83,10 +83,11 @@ func (o *SubscribeClient) Connect() error { } func (o *SubscribeClient) Stop(ctx context.Context) <-chan struct{} { - o.Log.Debugf("Opc Subscribe Stopped") - err := o.sub.Cancel(ctx) - if err != nil { - o.Log.Warn("Cancelling OPC UA subscription failed with error ", err) + o.Log.Debugf("Stopping OPC subscription...") + if o.sub != nil { + if err := o.sub.Cancel(ctx); err != nil { + o.Log.Warn("Cancelling OPC UA subscription failed with error ", err) + } } closing := o.OpcUAInputClient.Stop(ctx) o.processingCancel()