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)