@@ -13,10 +13,41 @@ The git repositories are hosted at the following sites:
1313* < https://bacnet.sourceforge.net/ >
1414* < https://github.com/bacnet-stack/bacnet-stack/ >
1515
16- ## [ Unreleased] - 2026-05 -29
16+ ## [ Unreleased] - 2026-06 -29
1717
1818### Security
1919
20+ * Secured lighting_command_decode out-of-bounds read, and enforce the
21+ FADE_TO and RAMP_TO required levels. (#1412 )
22+ * Secure SCFailedConnectionRequest and SCDirectConnection decoder by
23+ adjusting the apdu size calculation. (#1413 )
24+ * Secured RAMFS by checking read-only property for file size setting
25+ and zero new memory during realloc to prevent data leaking. (#1411 )
26+ * Secured EPICs app property list management by adding append function. (#1409 )
27+ * Secured Life Safety Zone member handling for write property. (#1410 )
28+ * Secured the basic RAMFS to prevent buffer overrun during consecutive
29+ record appends and prevent heap out-of-bounds read during record
30+ replacement. (#1408 )
31+ * Secured rpm_ack_decode_service_request buffer overflow by validating data
32+ length and remaining bytes. Added unit tests for
33+ handler_read_property_multiple_ack decoder paths. (#1395 )
34+ * Secured BACnet/SC short proprietary option headers using BVLC-SC option
35+ header validation and rejecting proprietary options with hdr_len < 3
36+ (minimum vendor-id + option-type). Made proprietary option decode
37+ initialize outputs and only read vendor-id/option-type when hdr_len >= 3.
38+ Added a regression test that injects a malformed proprietary option
39+ and asserts decode fails with ERROR_CODE_HEADER_ENCODING_ERROR. (#1396 )
40+ * Secured apps/router-mstp and apps/router-ipv6 routing, introducing
41+ routed_npdu_apdu_encode() with an explicit oversized-PDU drop check.
42+ Fixed protocol-version access (avoid reading pdu[ 0] when pdu_len == 0).
43+ Refactored logging in router applications to use debug_log_fprintf
44+ for consistent debug output. Refactored the router apps to use the
45+ bactext_debug_severity_strtol() for the BACNET_ROUTER_DEBUG environment
46+ variable. (#1392 )
47+ * Secured the network control handler in the router-ipv6 and router-mstp apps
48+ to ensure proper offset calculation and prevent buffer overrun. (#1387 )
49+ * Secured xy_color_decode() by adjusting apdu_size calculation to prevent
50+ out-of-bounds read. (#1386 )
2051* Secured the basic device object which had a string use after free.
2152 Added character string buffer stndup and same/diff functions.
2253 Changed all the device object character string handling to use
@@ -66,6 +97,16 @@ The git repositories are hosted at the following sites:
6697
6798### Added
6899
100+ * Added .github/prompts to .gitignore
101+ * Add debug severity handling with ASCII string conversion functions into
102+ bactext module. Changed all the example apps to use the
103+ bactext_debug_severity_strtol() function for the "--debug" command
104+ line argument. (#1393 )
105+ * Added Lighting_Output_Overridden_Ramp function. (#1389 )
106+ * Added a lighting command override ramp function. Refactored the lighting
107+ commands to prevent them from meddling with tracking values and lighting
108+ operations while the light is overridden. (#1388 )
109+ * Added BACNET_DEFINES variable to CMake build. (#1384 )
69110* Added BACnet/SC (BSC) datalink support to the modbus-gateway application.
70111 Extended GW_CONFIG with sc sub-struct holding all BACNET_SC_ * fields, and
71112 added compile-time fallback: non-BSC binary + "bsc" JSON → warns and falls
@@ -115,6 +156,32 @@ The git repositories are hosted at the following sites:
115156
116157### Changed
117158
159+ * Changed the GTK discover app to refresh objects quickly. Fixed object
160+ tree view to update a single row in place, preserving the selection.
161+ Implemented property value editing with Enter key commit control for
162+ WriteProperty. Refactored main window layout and default window size
163+ and column spacing constants for better usability. Removed REFRESH
164+ button. (#1390 )
165+ * Changed compiler warnings to be stricter and remove unnecessary suppressions.
166+ Apply const correctness across multiple files, including datalink interface
167+ name parameters across multiple files. Apply const qualifications to the
168+ character buffer string functions. Apply const correctness to string
169+ parameters in bacapp.c and bacapp.h. Revise parsing of const strings using
170+ bacnet_stptok() to tokenize. Add bacnet_strncpy to ensure null-terminated
171+ partial string copying. Replace strncpy with bacnet_strncpy for safer string
172+ copying in modbus_rtu and point_table modules. Fixed file compile warnings
173+ where the "no previous declaration" is being generated. Fixed floating-point
174+ arithmetic by adding type casts for clarity, including a changing
175+ color_rgb_clamp to use float instead of double to fix compiler float
176+ conversion warnings. Refactor hostname validation and encoding functions
177+ for const correctness and improved string handling.
178+ Renamed routed_get_my_address to Routed_Device_Get_My_Address and
179+ update references for consistency with BAC_ROUTING.
180+ Refactor Ringbuf functions to remove unnecessary volatile qualifiers
181+ and casting to improve type safety. Use cast to uintptr_t for specific
182+ casting to const where appropriate. Enable additional compiler warnings
183+ in unit tests and treat them as errors to enforce clean builds.
184+ Add parse_primitive_value function to handle primitive data parsing. (#1385 )
118185* Changed debug_print to debug_log_fprintf in ReadRange handler. (#1303 )
119186* Changed logging in many modules to use debug_log_fprintf for consistent
120187 error and debug output that can be adjusted during runtime. (#1364 )
@@ -150,6 +217,17 @@ The git repositories are hosted at the following sites:
150217
151218### Fixed
152219
220+ * Fixed out-of-bounds write in Read Property ACK closing tag encoding. (#1407 )
221+ * Fixed AV COV change on out-of-service writes by marking them. (#1406 )
222+ * Fixed GetEventInformation service choice in error reply. (#1405 )
223+ * Fixed device object property value codec by advancing cursor. (#1404 )
224+ * Fixed Recipient_List decode by advancing the cursor for list elements. (#1402 )
225+ * Fixed GetAlarmSummary to accept empty request. (#1401 )
226+ * Fixed Binary_Lighting_Output_Create to initialize Time_Of_Active_Time_Reset
227+ and Time_Of_Strike_Count_Reset using datetime_wildcard_set.
228+ * Fixed access credential object initialization to use datetime_wildcard_set
229+ for activation and expiration times.
230+ * Fixed C89 build warnings from modbus gateway application. (#1383 )
153231* Fixed ReadRange service request to reject for missing mandatory parameters
154232 in Read Range request. (#1303 )
155233* Fixed BACnet/SC primary hub reconnection logic when connected to failover
@@ -204,6 +282,8 @@ The git repositories are hosted at the following sites:
204282
205283### Removed
206284
285+ * Remove unnecessary LEGACY=true flag from build commands in Makefile,
286+ workflows, and scripts. (#1383 )
207287* Removed unmaintained ports/uip, ports/arduino_uno, ports/pic18* ,
208288 and ports/rx62n folders and references. (#1324 )
209289
0 commit comments