Explorar o código

fix segmentation fault for subscription data change

Thomas Bender %!s(int64=6) %!d(string=hai) anos
pai
achega
43cdfb67b7
Modificáronse 1 ficheiros con 2 adicións e 1 borrados
  1. 2 1
      src/server/ua_subscription_datachange.c

+ 2 - 1
src/server/ua_subscription_datachange.c

@@ -61,7 +61,8 @@ MonitoredItem_delete(UA_Server *server, UA_MonitoredItem *monitoredItem) {
     }
 
     /* Remove the monitored item */
-    LIST_REMOVE(monitoredItem, listEntry);
+    if(monitoredItem->listEntry.le_prev != NULL)
+        LIST_REMOVE(monitoredItem, listEntry);
     UA_String_deleteMembers(&monitoredItem->indexRange);
     UA_ByteString_deleteMembers(&monitoredItem->lastSampledValue);
     UA_Variant_deleteMembers(&monitoredItem->lastValue);