From 196ac2b0fd08054da3e955d84bda305ae21ba986 Mon Sep 17 00:00:00 2001 From: Steve Karg Date: Fri, 16 Sep 2022 08:42:07 -0500 Subject: [PATCH] Fix BACnet object text off-by-one. --- src/bacnet/bacapp.c | 4 ++-- src/bacnet/bactext.c | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/bacnet/bacapp.c b/src/bacnet/bacapp.c index 619af1bd..5b326531 100644 --- a/src/bacnet/bacapp.c +++ b/src/bacnet/bacapp.c @@ -2034,11 +2034,11 @@ int bacapp_snprintf_value( } break; case PROP_OBJECT_TYPE: - if (value->type.Enumerated < BACNET_OBJECT_TYPE_LAST) { + if (value->type.Enumerated <= BACNET_OBJECT_TYPE_LAST) { ret_val = snprintf(str, str_len, "%s", bactext_object_type_name( value->type.Enumerated)); - } else if (value->type.Enumerated < + } else if (value->type.Enumerated <= BACNET_OBJECT_TYPE_RESERVED_MAX) { ret_val = snprintf(str, str_len, "reserved %lu", (unsigned long)value->type.Enumerated); diff --git a/src/bacnet/bactext.c b/src/bacnet/bactext.c index 75ae99ba..002bbd9d 100644 --- a/src/bacnet/bactext.c +++ b/src/bacnet/bactext.c @@ -245,8 +245,9 @@ INDTEXT_DATA bacnet_object_type_names[] = { { OBJECT_ANALOG_INPUT, const char *bactext_object_type_name(unsigned index) { - return indtext_by_index_split_default(bacnet_object_type_names, index, 128, - ASHRAE_Reserved_String, Vendor_Proprietary_String); + return indtext_by_index_split_default(bacnet_object_type_names, index, + OBJECT_PROPRIETARY_MIN, ASHRAE_Reserved_String, + Vendor_Proprietary_String); } bool bactext_object_type_index(const char *search_name, unsigned *found_index)