瀏覽代碼

fix segmentation fault for subscription data change

Thomas Bender 6 年之前
父節點
當前提交
43cdfb67b7
共有 1 個文件被更改,包括 2 次插入1 次删除
  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 */
     /* Remove the monitored item */
-    LIST_REMOVE(monitoredItem, listEntry);
+    if(monitoredItem->listEntry.le_prev != NULL)
+        LIST_REMOVE(monitoredItem, listEntry);
     UA_String_deleteMembers(&monitoredItem->indexRange);
     UA_String_deleteMembers(&monitoredItem->indexRange);
     UA_ByteString_deleteMembers(&monitoredItem->lastSampledValue);
     UA_ByteString_deleteMembers(&monitoredItem->lastSampledValue);
     UA_Variant_deleteMembers(&monitoredItem->lastValue);
     UA_Variant_deleteMembers(&monitoredItem->lastValue);