@@ -167,6 +167,8 @@ class GroupKeyManagementAttributeAccess : public AttributeAccessInterface
167
167
VerifyOrReturnError (nullptr != provider, CHIP_ERROR_INTERNAL);
168
168
169
169
CHIP_ERROR err = aEncoder.EncodeList ([provider](const auto & encoder) -> CHIP_ERROR {
170
+ CHIP_ERROR encodeStatus = CHIP_NO_ERROR;
171
+
170
172
for (auto & fabric : Server::GetInstance ().GetFabricTable ())
171
173
{
172
174
auto fabric_index = fabric.GetFabricIndex ();
@@ -181,11 +183,19 @@ class GroupKeyManagementAttributeAccess : public AttributeAccessInterface
181
183
.groupKeySetID = mapping.keyset_id ,
182
184
.fabricIndex = fabric_index,
183
185
};
184
- encoder.Encode (key);
186
+ encodeStatus = encoder.Encode (key);
187
+ if (encodeStatus != CHIP_NO_ERROR)
188
+ {
189
+ break ;
190
+ }
185
191
}
186
192
iter->Release ();
193
+ if (encodeStatus != CHIP_NO_ERROR)
194
+ {
195
+ break ;
196
+ }
187
197
}
188
- return CHIP_NO_ERROR ;
198
+ return encodeStatus ;
189
199
});
190
200
return err;
191
201
}
@@ -255,6 +265,8 @@ class GroupKeyManagementAttributeAccess : public AttributeAccessInterface
255
265
VerifyOrReturnError (nullptr != provider, CHIP_ERROR_INTERNAL);
256
266
257
267
CHIP_ERROR err = aEncoder.EncodeList ([provider](const auto & encoder) -> CHIP_ERROR {
268
+ CHIP_ERROR encodeStatus = CHIP_NO_ERROR;
269
+
258
270
for (auto & fabric : Server::GetInstance ().GetFabricTable ())
259
271
{
260
272
auto fabric_index = fabric.GetFabricIndex ();
@@ -264,11 +276,19 @@ class GroupKeyManagementAttributeAccess : public AttributeAccessInterface
264
276
GroupDataProvider::GroupInfo info;
265
277
while (iter->Next (info))
266
278
{
267
- encoder.Encode (GroupTableCodec (provider, fabric_index, info));
279
+ encodeStatus = encoder.Encode (GroupTableCodec (provider, fabric_index, info));
280
+ if (encodeStatus != CHIP_NO_ERROR)
281
+ {
282
+ break ;
283
+ }
268
284
}
269
285
iter->Release ();
286
+ if (encodeStatus != CHIP_NO_ERROR)
287
+ {
288
+ break ;
289
+ }
270
290
}
271
- return CHIP_NO_ERROR ;
291
+ return encodeStatus ;
272
292
});
273
293
return err;
274
294
}
0 commit comments