diff --git a/CHANGELOG.md b/CHANGELOG.md index df3b43cb..31a23aeb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,28 +15,82 @@ The git repositories are hosted at the following sites: ## [Unreleased] ### Security +### Added +### Changed +### Fixed +### Removed + +## [1.3.4] - 2024-03-02 + +### Security + +* Secured bacapp_decode_application_data_safe(),bacapp_decode_application_data_len(), + bacapp_decode_context_data(), bacapp_decode_known_property() for timestamp, + bacapp_decode_context_data_len(), and bacapp_data_len() functions. (#578) ### Added +* Added SHIELD=dfr0259 or SHIELD=linksprite build options to RS485 + driver for stm32f4xx port. +* Added FAQ 18 for firewall info (#587) +* Added a BASH script for parallel EPICS clients registering as foreign devices + to a BBMD (#586) +* Added an example application - bacdiscover - to discover devices and their + objects and properties on a specific destination network. The application + uses a BACnet Discovery FSM module along with the BACnet R/W FSM. + The BACnet Discovery module stores the binary property data in Keylists + and includes device object property queries and iterators. (#583) +* Added callback from BACnet R/W FSM module for I-Am messages. (#583) +* Added an example application - bacapdu - to send an arbitrary + APDU string of hex-ASCII. (#580) +* Added a clean target recipe in apps to remove stale libbacnet.a file. +* Added missing binary input functions to set custom object names. (#574) +* Added Keylist_Index_Key to deprecate Keylist_Key function in + keylist module. Added unit test for Keylist_Index_Key API. Changed + modules using Keylist_Key. Changed keylist module to use bool and + stdint value for key not found. (#572) +* Added missing object functions to analog inputs and values. (#568) + ### Changed +* Changed BACnet R/W FSM module to remove dependency on + rpm_ack_decode_service_request() which uses large calloc/free + value lists. Created an alternate RPM-ACK to RP-ACK processing + function. (#583) +* Changed basic RPM handler to skip over unknown property values. (#583) +* Changed the release script to use tag option and remove tag reminder. + Fixed release tool to have a prefix folder with the tag version name. + Enabled rebuilding tagged release code and zips in a working tree in temp folder. + ### Fixed +* Fixed makefile for building the Linux router application. (#585) +* Fixed Command, Credential Data Input, and Schedule objects unit tests. (#578) +* Fixed apps/Makefile to use apps/lib/libbacnet.a library file instead of + a library file in system /usr/lib folder. +* Fixed example Analog Output to set proper bounds for + Analog_Output_Present_Value_Set and Analog_Output_Present_Value_Write. (#575) +* Fixed the Network Port object subnet mask for IP example. (#573) +* Fixed bacnet_address_init() when setting only the dnet value. (#570) +* Fixed MSVC snprintf from C99 in platform.h file. (#570) + ### Removed +* Removed the ARM math library binary files in the stm32f4xx port + ## [1.3.3] - 2024-02-2 ### Security - * Secured the following services by refactoring the size check - and refactoring the service requests from the service header, - adding APDU size checking and length features, and adding unit - tests to check for length when passing NULL buffer: - ARF/AWF/COV/CO/DO/DCC/Event/GE/ALE/RLE/LSO/RD/RR/RP/WP. (#553) +* Secured the following services by refactoring the size check + and refactoring the service requests from the service header, + adding APDU size checking and length features, and adding unit + tests to check for length when passing NULL buffer: + ARF/AWF/COV/CO/DO/DCC/Event/GE/ALE/RLE/LSO/RD/RR/RP/WP. (#553) ### Added -* Added bacapp decoding for accumulator SCALE property (#566) +* Added bacapp decoding for accumulator SCALE property. (#566) * Added a MS/TP zero-config (automatically choose an unused MAC address) using an algorithm that starts with MAC=64 and waits for a random number of PFM (minimum of 8 plus modulo 64) before attempting to choose a MAC diff --git a/CMakeLists.txt b/CMakeLists.txt index be0f1a9d..a77c2e77 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.1 FATAL_ERROR) project( bacnet-stack - VERSION 1.1.0 + VERSION 1.3.4 LANGUAGES C) # diff --git a/src/bacnet/version.h b/src/bacnet/version.h index 7f2b20a1..f881b7d9 100644 --- a/src/bacnet/version.h +++ b/src/bacnet/version.h @@ -1,36 +1,22 @@ -/************************************************************************** -* -* Copyright (C) 2012 Steve Karg -* -* Permission is hereby granted, free of charge, to any person obtaining -* a copy of this software and associated documentation files (the -* "Software"), to deal in the Software without restriction, including -* without limitation the rights to use, copy, modify, merge, publish, -* distribute, sublicense, and/or sell copies of the Software, and to -* permit persons to whom the Software is furnished to do so, subject to -* the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*********************************************************************/ -#ifndef VERSION_H -#define VERSION_H +/** + * @file + * @author Steve Karg + * @date 2004 + * @brief BACnet protocol stack version 0.0.0 - 255.255.255 + * @copyright + * Copyright (C) 2004 Steve Karg + * SPDX-License-Identifier: MIT + */ +#ifndef _BACNET_VERSION_H_ +#define _BACNET_VERSION_H_ -/* This BACnet protocol stack version 0.0.0 - FF.FF.FF */ +/* This BACnet protocol stack version 0.0.0 - 255.255.255 */ #ifndef BACNET_VERSION #define BACNET_VERSION(x,y,z) (((x)<<16)+((y)<<8)+(z)) #endif -#define BACNET_VERSION_TEXT "1.3.3" -#define BACNET_VERSION_CODE BACNET_VERSION(1,3,3) +#define BACNET_VERSION_TEXT "1.3.4" +#define BACNET_VERSION_CODE BACNET_VERSION(1,3,4) #define BACNET_VERSION_MAJOR ((BACNET_VERSION_CODE>>16)&0xFF) #define BACNET_VERSION_MINOR ((BACNET_VERSION_CODE>>8)&0xFF) #define BACNET_VERSION_MAINTENANCE (BACNET_VERSION_CODE&0xFF)