@@ -541,18 +541,19 @@ CHIP_ERROR GenericConfigurationManagerImpl<ConfigClass>::IncrementLifetimeCounte
541
541
template <class ConfigClass >
542
542
CHIP_ERROR GenericConfigurationManagerImpl<ConfigClass>::SetRotatingDeviceIdUniqueId(const ByteSpan & uniqueIdSpan)
543
543
{
544
- ReturnErrorCodeIf (uniqueIdSpan.size () != kRotatingDeviceIDUniqueIDLength , CHIP_ERROR_BUFFER_TOO_SMALL);
545
- memcpy (mRotatingDeviceIdUniqueId , uniqueIdSpan.data (), kRotatingDeviceIDUniqueIDLength );
544
+ ReturnErrorCodeIf (uniqueIdSpan.size () < kMinRotatingDeviceIDUniqueIDLength , CHIP_ERROR_INVALID_ARGUMENT);
545
+ ReturnErrorCodeIf (uniqueIdSpan.size () > CHIP_DEVICE_CONFIG_ROTATING_DEVICE_ID_UNIQUE_ID_LENGTH, CHIP_ERROR_BUFFER_TOO_SMALL);
546
+ memcpy (mRotatingDeviceIdUniqueId , uniqueIdSpan.data (), uniqueIdSpan.size ());
547
+ mRotatingDeviceIdUniqueIdLength = uniqueIdSpan.size ();
546
548
return CHIP_NO_ERROR;
547
549
}
548
550
549
551
template <class ConfigClass >
550
552
CHIP_ERROR GenericConfigurationManagerImpl<ConfigClass>::GetRotatingDeviceIdUniqueId(MutableByteSpan & uniqueIdSpan)
551
553
{
552
- ReturnErrorCodeIf (sizeof (mRotatingDeviceIdUniqueId ) > uniqueIdSpan.size (), CHIP_ERROR_BUFFER_TOO_SMALL);
553
- ReturnErrorCodeIf (uniqueIdSpan.size () != kRotatingDeviceIDUniqueIDLength , CHIP_ERROR_BUFFER_TOO_SMALL);
554
- memcpy (uniqueIdSpan.data (), mRotatingDeviceIdUniqueId , sizeof (mRotatingDeviceIdUniqueId ));
555
- uniqueIdSpan.reduce_size (sizeof (mRotatingDeviceIdUniqueId ));
554
+ ReturnErrorCodeIf (mRotatingDeviceIdUniqueIdLength > uniqueIdSpan.size (), CHIP_ERROR_BUFFER_TOO_SMALL);
555
+ memcpy (uniqueIdSpan.data (), mRotatingDeviceIdUniqueId , mRotatingDeviceIdUniqueIdLength );
556
+ uniqueIdSpan.reduce_size (mRotatingDeviceIdUniqueIdLength );
556
557
return CHIP_NO_ERROR;
557
558
}
558
559
0 commit comments