[network-data] do not process TMF messages if waiting for sync (#8332)

diff --git a/src/core/thread/network_data_leader_ftd.cpp b/src/core/thread/network_data_leader_ftd.cpp
index 27654e3..e8b3afa 100644
--- a/src/core/thread/network_data_leader_ftd.cpp
+++ b/src/core/thread/network_data_leader_ftd.cpp
@@ -133,12 +133,10 @@
     ThreadNetworkDataTlv networkDataTlv;
     uint16_t             rloc16;
 
-    VerifyOrExit(Get<Mle::Mle>().IsLeader());
+    VerifyOrExit(Get<Mle::Mle>().IsLeader() && !mWaitingForNetDataSync);
 
     LogInfo("Received network data registration");
 
-    VerifyOrExit(!mWaitingForNetDataSync);
-
     VerifyOrExit(aMessageInfo.GetPeerAddr().GetIid().IsRoutingLocator());
 
     switch (Tlv::Find<ThreadRloc16Tlv>(aMessage, rloc16))
@@ -185,10 +183,9 @@
     MeshCoP::Tlv *cur;
     MeshCoP::Tlv *end;
 
-    VerifyOrExit(Get<Mle::Mle>().IsLeader());
+    VerifyOrExit(Get<Mle::Mle>().IsLeader() && !mWaitingForNetDataSync);
 
     VerifyOrExit(length <= sizeof(tlvs));
-    VerifyOrExit(Get<Mle::MleRouter>().IsLeader());
 
     aMessage.ReadBytes(offset, tlvs, length);
 
@@ -275,7 +272,7 @@
     uint16_t length = 0;
     uint16_t offset;
 
-    VerifyOrExit(Get<Mle::Mle>().IsLeader());
+    VerifyOrExit(Get<Mle::Mle>().IsLeader() && !mWaitingForNetDataSync);
 
     SuccessOrExit(Tlv::FindTlvValueOffset(aMessage, MeshCoP::Tlv::kGet, offset, length));
     aMessage.SetOffset(offset);