Fix You-Are-Request encoding and decoding to use object-id instead of unsigned. (#1220)

This commit is contained in:
Steve Karg
2026-02-05 08:10:45 -06:00
committed by GitHub
parent 8cd1d82d81
commit edff06a9c0
2 changed files with 12 additions and 9 deletions
+3 -1
View File
@@ -12,7 +12,7 @@ The git repositories are hosted at the following sites:
* https://bacnet.sourceforge.net/
* https://github.com/bacnet-stack/bacnet-stack/
## [Unreleased] - 2026-02-02
## [Unreleased] - 2026-02-05
### Security
@@ -122,6 +122,8 @@ The git repositories are hosted at the following sites:
### Fixed
* Fixed You-Are-Request encoding and decoding to use object-id instead
of unsigned. (#1220)
* Fixed handling for abort and reject errors in Write Property service. (#1216)
* Fixed lighting output object lighting-commands for warn-off and
warn-relinquish when an update at the specified priority slot
+9 -8
View File
@@ -64,7 +64,7 @@ int you_are_request_encode(
apdu += len;
}
if (device_id < BACNET_MAX_INSTANCE) {
len = encode_application_unsigned(apdu, device_id);
len = encode_application_object_id(apdu, OBJECT_DEVICE, device_id);
apdu_len += len;
if (apdu) {
apdu += len;
@@ -148,6 +148,8 @@ int you_are_request_decode(
{
int len = 0, apdu_len = 0;
BACNET_UNSIGNED_INTEGER unsigned_value = 0;
BACNET_OBJECT_TYPE object_type;
uint32_t object_instance;
if (!apdu) {
return BACNET_STATUS_ERROR;
@@ -183,17 +185,16 @@ int you_are_request_decode(
} else {
return BACNET_STATUS_ERROR;
}
len = bacnet_unsigned_application_decode(
&apdu[apdu_len], apdu_size - apdu_len, &unsigned_value);
len = bacnet_object_id_application_decode(
&apdu[apdu_len], apdu_size - apdu_len, &object_type, &object_instance);
if (len > 0) {
apdu_len += len;
if (unsigned_value <= UINT32_MAX) {
if (device_id) {
*device_id = (uint32_t)unsigned_value;
}
} else {
if (object_type != OBJECT_DEVICE) {
return BACNET_STATUS_ERROR;
}
if (device_id) {
*device_id = object_instance;
}
} else if (len == 0) {
/* optional - skip apdu_len increment */
if (device_id) {