From 849cbb238bf06a8c5a1fef071bdc0f965981ee73 Mon Sep 17 00:00:00 2001 From: Steve Karg Date: Wed, 26 Feb 2025 17:00:51 -0600 Subject: [PATCH] Fixed Device_Write_Property_Object_Name() to return WRITE_ACCESS_DENIED in case where an object name is not writable using BACnet protocol. (#927) --- apps/blinkt/device.c | 4 ++-- apps/piface/device.c | 4 ++-- ports/at91sam7s/device.c | 4 ++-- ports/bdk-atxx4-mstp/device.c | 4 ++-- ports/stm32f4xx/device.c | 4 ++-- src/bacnet/basic/object/client/device-client.c | 4 ++-- src/bacnet/basic/object/device.c | 4 ++-- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/apps/blinkt/device.c b/apps/blinkt/device.c index b15e2621..207e9d6b 100644 --- a/apps/blinkt/device.c +++ b/apps/blinkt/device.c @@ -1720,8 +1720,8 @@ static bool Device_Write_Property_Object_Name( if (Device_Valid_Object_Name(&value, &object_type, &object_instance)) { if ((object_type == wp_data->object_type) && (object_instance == wp_data->object_instance)) { - /* writing same name to same object */ - status = true; + /* writing same name to same object - but is it writable? */ + status = Object_Write_Property(wp_data); } else { /* name already exists in some object */ wp_data->error_class = ERROR_CLASS_PROPERTY; diff --git a/apps/piface/device.c b/apps/piface/device.c index fed76128..5312e6d9 100644 --- a/apps/piface/device.c +++ b/apps/piface/device.c @@ -1672,8 +1672,8 @@ static bool Device_Write_Property_Object_Name( if (Device_Valid_Object_Name(&value, &object_type, &object_instance)) { if ((object_type == wp_data->object_type) && (object_instance == wp_data->object_instance)) { - /* writing same name to same object */ - status = true; + /* writing same name to same object - but is it writable? */ + status = Object_Write_Property(wp_data); } else { /* name already exists in some object */ wp_data->error_class = ERROR_CLASS_PROPERTY; diff --git a/ports/at91sam7s/device.c b/ports/at91sam7s/device.c index 29b23607..6d5ca6c8 100644 --- a/ports/at91sam7s/device.c +++ b/ports/at91sam7s/device.c @@ -238,8 +238,8 @@ static bool Device_Write_Property_Object_Name( if (Device_Valid_Object_Name(&value, &object_type, &object_instance)) { if ((object_type == wp_data->object_type) && (object_instance == wp_data->object_instance)) { - /* writing same name to same object */ - status = true; + /* writing same name to same object - but is it writable? */ + status = Object_Write_Property(wp_data); } else { /* name already exists in some object */ wp_data->error_class = ERROR_CLASS_PROPERTY; diff --git a/ports/bdk-atxx4-mstp/device.c b/ports/bdk-atxx4-mstp/device.c index b3e94734..c0ebb3de 100644 --- a/ports/bdk-atxx4-mstp/device.c +++ b/ports/bdk-atxx4-mstp/device.c @@ -205,8 +205,8 @@ static bool Device_Write_Property_Object_Name( if (Device_Valid_Object_Name(&value, &object_type, &object_instance)) { if ((object_type == wp_data->object_type) && (object_instance == wp_data->object_instance)) { - /* writing same name to same object */ - status = true; + /* writing same name to same object - but is it writable? */ + status = Object_Write_Property(wp_data); } else { /* name already exists in some object */ wp_data->error_class = ERROR_CLASS_PROPERTY; diff --git a/ports/stm32f4xx/device.c b/ports/stm32f4xx/device.c index c80f9c77..735a81dd 100644 --- a/ports/stm32f4xx/device.c +++ b/ports/stm32f4xx/device.c @@ -1173,8 +1173,8 @@ static bool Device_Write_Property_Object_Name( if (Device_Valid_Object_Name(&value, &object_type, &object_instance)) { if ((object_type == wp_data->object_type) && (object_instance == wp_data->object_instance)) { - /* writing same name to same object */ - status = true; + /* writing same name to same object - but is it writable? */ + status = Object_Write_Property(wp_data); } else { /* name already exists in some object */ wp_data->error_class = ERROR_CLASS_PROPERTY; diff --git a/src/bacnet/basic/object/client/device-client.c b/src/bacnet/basic/object/client/device-client.c index d39e25d9..eeed9191 100644 --- a/src/bacnet/basic/object/client/device-client.c +++ b/src/bacnet/basic/object/client/device-client.c @@ -1282,8 +1282,8 @@ static bool Device_Write_Property_Object_Name( if (Device_Valid_Object_Name(&value, &object_type, &object_instance)) { if ((object_type == wp_data->object_type) && (object_instance == wp_data->object_instance)) { - /* writing same name to same object */ - status = true; + /* writing same name to same object - but is it writable? */ + status = Object_Write_Property(wp_data); } else { /* name already exists in some object */ wp_data->error_class = ERROR_CLASS_PROPERTY; diff --git a/src/bacnet/basic/object/device.c b/src/bacnet/basic/object/device.c index e5a46aca..686b7283 100644 --- a/src/bacnet/basic/object/device.c +++ b/src/bacnet/basic/object/device.c @@ -1954,8 +1954,8 @@ static bool Device_Write_Property_Object_Name( if (Device_Valid_Object_Name(&value, &object_type, &object_instance)) { if ((object_type == wp_data->object_type) && (object_instance == wp_data->object_instance)) { - /* writing same name to same object */ - status = true; + /* writing same name to same object - but is it writable? */ + status = Object_Write_Property(wp_data); } else { /* name already exists in some object */ wp_data->error_class = ERROR_CLASS_PROPERTY;