Commit Graph

110 Commits (24babeb2f9ad8276aecf581edce6786d9aa7217f)

Author SHA1 Message Date
Michael Zillgith a786198c87 Merge branch 'v1.6_develop_387' into v1.6_develop 2 years ago
Michael Zillgith 5b34251030 - IED server: fixed - segmentation fault when compiled with CONFIG_MMS_THREADLESS_STACK (LIB61850-398) 2 years ago
Michael Zillgith aa863f35f0 - IED server: added callback to control access to data model directories (get-name-list requests)(LIB61850-396) 2 years ago
Michael Zillgith 41ed0dd51a - implemented access control callbacks for logs and LCBs (LIB61850-392) 2 years ago
Michael Zillgith 76dbcb4496 - IED server: Implemented read/write access control to RCBs (LIB61850-391) 3 years ago
Michael Zillgith acfbe16452 - IED server/MMS server: added data set access callbacks and example (LIB61850-387) 3 years ago
Michael Zillgith 6895d8214b - MMS server: add function to ignore client requests (for test purposes) 3 years ago
Michael Zillgith a3a6f2c77f - IED Server: added function to set time quality for internally updated times (LIB61850-372) 3 years ago
Michael Zillgith d5f2172f93 - IED server: fixed - possible deadlock when IedServer_lockDataModel is used from multiple threads (LIB61850-352) 3 years ago
Michael Zillgith 6b23f87b23 - fixed code to support arrays of complex data attributes 3 years ago
Michael Zillgith 82e52881f9 - fixed problem with write access to data attribute of type array (LIB61850-336) 3 years ago
Michael Zillgith 30f10f6c6d Merge branch 'v1.5_develop' into v1.6_develop 3 years ago
Michael Zillgith 22f6a823ea - changed StringUtils_createStringInBuffer function to consider max buffer size (LIB61850-333) 3 years ago
Michael Zillgith 8addfc2095 - replaced most str(n)cpy/str(n)cat calls (LIB61850-333) 3 years ago
Michael Zillgith d8b595944d - IED server: fixed value initialization of array elements
- fixed merging problem in LogicalNode.java
3 years ago
Michael Zillgith 7099535a39 Merge branch 'v1.5_develop' into v1.6_develop 3 years ago
Michael Zillgith 3fe0effcda Merge branch 'v1.5_develop_323' into v1.5_develop 3 years ago
Michael Zillgith b3868a2f9f - removed some cppcheck warnings 3 years ago
Michael Zillgith 35ac479430 - fixed strncpy usage 3 years ago
Michael Zillgith cfbe677bc5 - added feature: synchronization of integrity report times (LIB61850-323)
- fixed potential memory access problems in ReportControlBlock getter functions
3 years ago
Michael Zillgith c76b5dd2da - server reporting: added code to prevent race condition with
RCBEventHandler
3 years ago
Michael Zillgith 398b14e65f - added null pointer protection to some constructors/destructors 4 years ago
Michael Zillgith 88148f39ac - added IedServer_RCBEventHandler 4 years ago
Michael Zillgith 93d8dfc856 - reporting.c: fixed report entry counter and assert problems
- IED server: disactivate all RCB instances when stopping the server
4 years ago
Michael Zillgith 659dd49338 - reworked server side array handling (-> incompatible data model structure changes!) 4 years ago
Michael Zillgith 25394b11e1 Merge branch 'v1.5' of https://github.com/mz-automation/libiec61850 into v1.6 4 years ago
Michael Zillgith 9a2fd3e23e - started to implement functional naming for LDs 4 years ago
Michael Zillgith 4ffed8de11 - IED server: fixed crash when IEDName+LDInst is too long 4 years ago
Michael Zillgith ea268b46a7 - IED server: make presence of RCB.Owner configurable at runtime with function IedServerConfig_enableOwnerForRCB (B1502/S1634) 5 years ago
Michael Zillgith fd3847dcc5 - IED server: make presence of BRCB.ResvTms configurable at runtime with function IedServerConfig_enableResvTmsForBRCB (F1558) 5 years ago
Michael Zillgith 842bc271cd - IED server: added new function IedServer_handleWriteAccessForComplexAttribute. Changed WriteAccessHandler behavior when ACCESS_POLICY_ALLOW. 5 years ago
Michael Zillgith 5e39c94cf3 - IED server: allow IedServer_setServerIdentity with some parameters set to NULL 5 years ago
Michael Zillgith 14f4f1ccf0 - IED server: added ControlSelectStateChangedHandler callback for control model 5 years ago
Michael Zillgith cc80bffa69 - IED server: support for configuration of EditSG service and online visibility of SGCB.ResvTms at runtime 5 years ago
Michael Zillgith 3f42387ed7 - IED server: fixed dupd trigger handling 5 years ago
Michael Zillgith 42802db6f1 - added -Wextra to Makefile and changed code to avoid resulting warnings 5 years ago
Mikael Bourhis a095c16139 IED Server/Goose: Fix the 'Goose Ethernet Interface Id' allocation
Issue:
In the case of 'GooseInterfaceId' initialization for all GOOSE
publishers (API function: IedServer_setGooseInterfaceId()), only the pointer of
the character string is saved and used for the next operations.
If the corresponding memory is cleared or overwritten in the
application program, a segfault may occurred in libiec61850.

Proof:
In the 'server_example_goose.c' example, if we used a temporary
allocated memory to store the 'ethernetIfcId', the bug will occur:

        /* set GOOSE interface for all GOOSE publishers (GCBs) */
    +   unsigned int ethernet_interface_id_length = strnlen(ethernetIfcID, 32);
    +   char * tmp_ethernet_interface_id = calloc(sizeof(char), ethernet_interface_id_length + 1);
    +   memcpy(tmp_ethernet_interface_id, ethernetIfcID, ethernet_interface_id_length);
    +
        IedServer_setGooseInterfaceId(iedServer, tmp_ethernet_interface_id);
    +
    +   explicit_bzero(tmp_ethernet_interface_id, ethernet_interface_id_length);
    +   free(tmp_ethernet_interface_id);

(This issue was discovered during the rewriting of 'server_example_goose'
in Python, with the Swig wrapper: the allocated memory for
'ethernetIfcID' parameter in the Swig wrapper is automatically reused)

Fix:
The 'gooseInterfaceId' attribute of 'MmsMapping' in libiec61850 must be a new
allocated memory (with the use of 'StringUtils_copyString()') and deallocated
in the 'MmsMapping_destroy()' function.
5 years ago
Michael Zillgith 7e1c2ef18f - IED server: added GoCB event callback
- IED server: added configuration option to use GoCB block handling without the integrated GOOSE publisher (IedServerConfig_useIntegratedGoosePublisher)
5 years ago
Michael Zillgith e4b2849894 - fixed problems in handling array elements and array element components 5 years ago
Michael Zillgith 9ab37e9836 - IED Server/GOOSE: Don't send GOOSE message with new event while data model is locked 5 years ago
Michael Zillgith d55afdfb92 - IEC 61850 server: added support to listen on multiple IP addresses and ports (new function IedServer_addAccessPoint) 5 years ago
Michael Zillgith 73f1a98b4a Merge branch 'v1.4' into v1.5 5 years ago
Michael Zillgith 6a2db3fe46 - IEC 61850 server: fixed bug in single threaded mode (windows) 5 years ago
Michael Zillgith 4a15e9987b - IEC 61850 server: fixed compilation error in single thread mode 5 years ago
Michael Zillgith 09b23aaa74 - IEC 618580 server: Added function IedServer_setServerIdentity to set values for MMS identity service 6 years ago
Michael Zillgith 1831be663e - updated version to 1.5.0 6 years ago
Michael Zillgith abcf93416f - added function IedServer_getNumberOfOpenConnections
- IEC 61850/MMS server: refactored connection handling
6 years ago
Michael Zillgith 8991954e3c - removed header dependencies from API headers 6 years ago
Michael Zillgith 18c2e30f87 - IEC 61850 server: refactored reporting module; unbuffered reports are stored to report buffer and sent by connection handling thread 6 years ago
Michael Zillgith 925c19bff6 - IED Server: added support for transient data objects 6 years ago