Doesn't provide PIN to the unlock after unlatch when the pin length is 0. (#36405)
Co-authored-by: Andrei Litvin <andy314@gmail.com>
diff --git a/examples/lock-app/silabs/src/LockManager.cpp b/examples/lock-app/silabs/src/LockManager.cpp
index 1a4fd93..6f5aba9 100644
--- a/examples/lock-app/silabs/src/LockManager.cpp
+++ b/examples/lock-app/silabs/src/LockManager.cpp
@@ -264,9 +264,11 @@
bool succes = false;
if (mUnlatchContext.mEndpointId != kInvalidEndpointId)
{
- succes = setLockState(
- mUnlatchContext.mEndpointId, mUnlatchContext.mFabricIdx, mUnlatchContext.mNodeId, DlLockState::kUnlocked,
- MakeOptional(chip::ByteSpan(mUnlatchContext.mPinBuffer, mUnlatchContext.mPinLength)), mUnlatchContext.mErr);
+ Optional<chip::ByteSpan> pin = (mUnlatchContext.mPinLength)
+ ? MakeOptional(chip::ByteSpan(mUnlatchContext.mPinBuffer, mUnlatchContext.mPinLength))
+ : Optional<chip::ByteSpan>::Missing();
+ succes = setLockState(mUnlatchContext.mEndpointId, mUnlatchContext.mFabricIdx, mUnlatchContext.mNodeId,
+ DlLockState::kUnlocked, pin, mUnlatchContext.mErr);
}
if (!succes)