Secure ReadProperty decoding and BACnetActionCommand (#702)

* Refactored and secured BACnetActionCommand codec into bacaction.c module for command object and added to bacapp module encode/decode with define for enabling and pseudo application tag for internal use.

* Simplified bacapp_data_len() and moved into bacdcode module as bacnet_enclosed_data_len() function.

* Secured ReadProperty-REQUEST and -ACK decoding.

* Removed deprecated Keylist_Key() functions from usage.

* Removed pseudo application datatypes from bacapp_data_decode() which only uses primitive application tag encoded values.

* Defined INT_MAX when it is not already defined by compiler or libc.

* Deprecated bacapp_decode_application_data_len() and bacapp_decode_context_data_len() as they are no longer used in any code in the library.

* Added BACnetScale to bacapp module. Improved complex property value decoding. Refactored bacapp_decode_known_property() function.

* Refactored and improved the bacapp_snprintf() function for printing EPICS.

* Fixed Lighting Output WriteProperty to handle known property decoding.
This commit is contained in:
Steve Karg
2024-07-25 17:12:08 -05:00
committed by GitHub
parent 923eaf2313
commit 4326128e72
191 changed files with 3856 additions and 2099 deletions
+1
View File
@@ -139,6 +139,7 @@ set(BACNET_PROJECT_SOURCE
${LIBRARY_BACNET_BASIC}/sys/mstimer.c
# BACnet core modules
${LIBRARY_BACNET_CORE}/abort.c
${LIBRARY_BACNET_CORE}/bacaction.c
${LIBRARY_BACNET_CORE}/bacaddr.c
${LIBRARY_BACNET_CORE}/bacapp.c
${LIBRARY_BACNET_CORE}/bacdcode.c
+1
View File
@@ -102,6 +102,7 @@ DEMOSRC = ai.c \
$(BACNET_BASIC)/service/s_ihave.c
CORESRC = $(BACNET_CORE)/abort.c \
$(BACNET_CORE)/bacaction.c \
$(BACNET_CORE)/bacaddr.c \
$(BACNET_CORE)/bacapp.c \
$(BACNET_CORE)/bacdcode.c \
+1
View File
@@ -121,6 +121,7 @@ BASICSRC = $(BACNET_BASIC)/service/h_dcc.c \
CORESRC = \
$(BACNET_CORE)/datalink/crc.c \
$(BACNET_CORE)/abort.c \
$(BACNET_CORE)/bacaction.c \
$(BACNET_CORE)/bacaddr.c \
$(BACNET_CORE)/bacapp.c \
$(BACNET_CORE)/bacdcode.c \
+1
View File
@@ -165,6 +165,7 @@ set(BACNET_PROJECT_SOURCE
${LIBRARY_BACNET_BASIC}/sys/mstimer.c
# BACnet core library
${LIBRARY_BACNET_CORE}/abort.c
${LIBRARY_BACNET_CORE}/bacaction.c
${LIBRARY_BACNET_CORE}/bacaddr.c
${LIBRARY_BACNET_CORE}/bacapp.c
${LIBRARY_BACNET_CORE}/bacdcode.c
+1
View File
@@ -54,6 +54,7 @@ BASIC_SRC = \
BACNET_SRC = \
$(BACNET_CORE)/abort.c \
$(BACNET_CORE)/bacaction.c \
$(BACNET_CORE)/bacaddr.c \
$(BACNET_CORE)/bacapp.c \
$(BACNET_CORE)/bacdcode.c \
+1
View File
@@ -181,6 +181,7 @@ set(BACNET_PROJECT_SOURCE
${LIBRARY_BACNET_BASIC}/sys/mstimer.c
${LIBRARY_BACNET_CORE}/abort.c
${LIBRARY_BACNET_CORE}/bacaction.c
${LIBRARY_BACNET_CORE}/bacaddr.c
${LIBRARY_BACNET_CORE}/bacapp.c
${LIBRARY_BACNET_CORE}/bacdcode.c
+1
View File
@@ -63,6 +63,7 @@ BASIC_SRC = \
BACNET_SRC = \
$(BACNET_CORE)/abort.c \
$(BACNET_CORE)/bacaction.c \
$(BACNET_CORE)/bacaddr.c \
$(BACNET_CORE)/bacapp.c \
$(BACNET_CORE)/bacdcode.c \
+3
View File
@@ -1052,6 +1052,9 @@
<file>
<name>$PROJ_DIR$\..\..\src\bacnet\abort.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\src\bacnet\bacaction.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\src\bacnet\bacaddr.c</name>
</file>
@@ -168,6 +168,7 @@
<ClCompile Include="..\..\..\..\src\bacnet\basic\service\h_apdu.c" />
<ClCompile Include="..\..\..\..\src\bacnet\arf.c" />
<ClCompile Include="..\..\..\..\src\bacnet\awf.c" />
<ClCompile Include="..\..\..\..\src\bacnet\bacaction.c" />
<ClCompile Include="..\..\..\..\src\bacnet\bacaddr.c" />
<ClCompile Include="..\..\..\..\src\bacnet\bacapp.c" />
<ClCompile Include="..\..\..\..\src\bacnet\bacdevobjpropref.c" />
@@ -33,6 +33,9 @@
<ClCompile Include="..\..\..\..\src\bacnet\awf.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\bacnet\bacaction.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\bacnet\bacaddr.c">
<Filter>Source Files</Filter>
</ClCompile>
@@ -28,6 +28,7 @@
<ClCompile Include="..\..\..\..\src\bacnet\authentication_factor_format.c" />
<ClCompile Include="..\..\..\..\src\bacnet\awf.c" />
<ClCompile Include="..\..\..\..\src\bacnet\bacaddr.c" />
<ClCompile Include="..\..\..\..\src\bacnet\bacaction.c" />
<ClCompile Include="..\..\..\..\src\bacnet\bacapp.c" />
<ClCompile Include="..\..\..\..\src\bacnet\bacdcode.c" />
<ClCompile Include="..\..\..\..\src\bacnet\bacdest.c" />
@@ -212,6 +213,7 @@
<ClInclude Include="..\..\..\..\src\bacnet\authentication_factor_format.h" />
<ClInclude Include="..\..\..\..\src\bacnet\awf.h" />
<ClInclude Include="..\..\..\..\src\bacnet\bacaddr.h" />
<ClInclude Include="..\..\..\..\src\bacnet\bacaction.h" />
<ClInclude Include="..\..\..\..\src\bacnet\bacapp.h" />
<ClInclude Include="..\..\..\..\src\bacnet\bacdcode.h" />
<ClInclude Include="..\..\..\..\src\bacnet\bacdef.h" />
@@ -78,6 +78,9 @@
<ClCompile Include="..\..\..\..\src\bacnet\bacaddr.c">
<Filter>Source Files\src\bacnet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\bacnet\bacaction.c">
<Filter>Source Files\src\bacnet</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\bacnet\bacapp.c">
<Filter>Source Files\src\bacnet</Filter>
</ClCompile>
@@ -626,6 +629,9 @@
<ClInclude Include="..\..\..\..\src\bacnet\bacaddr.h">
<Filter>Source Files\src\bacnet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\bacnet\bacaction.h">
<Filter>Source Files\src\bacnet</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\bacnet\bacapp.h">
<Filter>Source Files\src\bacnet</Filter>
</ClInclude>
+1
View File
@@ -78,6 +78,7 @@ BASICSRC = $(BACNET_BASIC)/tsm/tsm.c \
# core BACnet stack files
CORESRC = \
$(BACNET_CORE)/abort.c \
$(BACNET_CORE)/bacaction.c \
$(BACNET_CORE)/bacaddr.c \
$(BACNET_CORE)/bacapp.c \
$(BACNET_CORE)/bacdcode.c \
+4
View File
@@ -759,6 +759,10 @@
<SubType>compile</SubType>
<Link>bacnet-stack\h_apdu.c</Link>
</Compile>
<Compile Include="..\..\src\bacnet\bacaction.c">
<SubType>compile</SubType>
<Link>bacnet-stack\bacaddr.c</Link>
</Compile>
<Compile Include="..\..\src\bacnet\bacaddr.c">
<SubType>compile</SubType>
<Link>bacnet-stack\bacaddr.c</Link>