Prechádzať zdrojové kódy

Fix invalid cast in case of writing value to object attribute UA_ATTRIBUTEID_EVENTNOTIFIER

Jojakim Stahl 5 rokov pred
rodič
commit
9335c585fb
1 zmenil súbory, kde vykonal 5 pridanie a 1 odobranie
  1. 5 1
      src/server/ua_services_attribute.c

+ 5 - 1
src/server/ua_services_attribute.c

@@ -1275,7 +1275,11 @@ copyAttributeIntoNode(UA_Server *server, UA_Session *session,
         CHECK_NODECLASS_WRITE(UA_NODECLASS_VIEW | UA_NODECLASS_OBJECT);
         CHECK_USERWRITEMASK(UA_WRITEMASK_EVENTNOTIFIER);
         CHECK_DATATYPE_SCALAR(BYTE);
-        ((UA_ViewNode*)node)->eventNotifier = *(const UA_Byte*)value;
+        if(node->nodeClass == UA_NODECLASS_VIEW) {
+            ((UA_ViewNode*)node)->eventNotifier = *(const UA_Byte*)value;
+        } else {
+            ((UA_ObjectNode*)node)->eventNotifier = *(const UA_Byte*)value;
+        }
         break;
     case UA_ATTRIBUTEID_VALUE:
         CHECK_NODECLASS_WRITE(UA_NODECLASS_VARIABLE | UA_NODECLASS_VARIABLETYPE);