@@ -96,13 +96,15 @@ ICDManagementCluster::ICDManagementCluster(EndpointId endpointId, Crypto::Symmet
9696 CharSpan userActiveModeTriggerInstruction) :
9797 DefaultServerCluster ({ endpointId, IcdManagement::Id }),
9898 mSymmetricKeystore (symmetricKeystore), mFabricTable (fabricTable), mICDConfigurationData (icdConfigurationData),
99- mOptionalAttributeSet (optionalAttributeSet), mEnabledCommands (enabledCommands),
100- mUserActiveModeTriggerBitmap (userActiveModeTriggerBitmap),
101- mUserActiveModeTriggerInstructionLength (static_cast <uint8_t >(
102- std::min (userActiveModeTriggerInstruction.size(), IcdManagement::kUserActiveModeTriggerInstructionMaxLength)))
99+ mOptionalAttributeSet (optionalAttributeSet), mUserActiveModeTriggerBitmap (userActiveModeTriggerBitmap),
100+ mEnabledCommands (enabledCommands), mUserActiveModeTriggerInstructionLength (0 )
103101{
102+ static_assert (sizeof (mUserActiveModeTriggerInstruction ) <= UINT8_MAX,
103+ " mUserActiveModeTriggerInstruction size must fit in uint8_t" );
104+
104105 MutableCharSpan buffer (mUserActiveModeTriggerInstruction );
105106 CopyCharSpanToMutableCharSpanWithTruncation (userActiveModeTriggerInstruction, buffer);
107+ mUserActiveModeTriggerInstructionLength = static_cast <uint8_t >(buffer.size ());
106108}
107109
108110DataModel::ActionReturnStatus ICDManagementCluster::ReadAttribute (const DataModel::ReadAttributeRequest & request,
0 commit comments