From aabebb7c1ebe79b6fb3aa3bd670f89b9d2d28349 Mon Sep 17 00:00:00 2001 From: Jonathan Hui Date: Thu, 1 Mar 2018 20:50:59 +0000 Subject: [PATCH] [operational-dataset] fix bug in getting the channel mask (#2591) --- src/cli/cli_dataset.cpp | 2 +- src/core/meshcop/dataset.cpp | 5 ++--- src/core/meshcop/dataset_local.cpp | 5 ++--- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/cli/cli_dataset.cpp b/src/cli/cli_dataset.cpp index a0af7b724..ff662c558 100644 --- a/src/cli/cli_dataset.cpp +++ b/src/cli/cli_dataset.cpp @@ -104,7 +104,7 @@ otError Dataset::Print(otOperationalDataset &aDataset) if (aDataset.mIsChannelMaskPage0Set) { - sServer->OutputFormat("Channel Mask Page 0: %x\r\n", aDataset.mChannelMaskPage0); + sServer->OutputFormat("Channel Mask Page 0: %08x\r\n", aDataset.mChannelMaskPage0); } if (aDataset.mIsDelaySet) diff --git a/src/core/meshcop/dataset.cpp b/src/core/meshcop/dataset.cpp index 4e8d9f676..e64062158 100644 --- a/src/core/meshcop/dataset.cpp +++ b/src/core/meshcop/dataset.cpp @@ -138,9 +138,8 @@ void Dataset::Get(otOperationalDataset &aDataset) const { if (reinterpret_cast(entry)->GetChannelPage() == 0) { - uint8_t i = sizeof(ChannelMaskEntry); - aDataset.mChannelMaskPage0 = static_cast(entry[i] | (entry[i + 1] << 8) | - (entry[i + 2] << 16) | (entry[i + 3] << 24)); + const ChannelMask0Tlv *tlv = static_cast(cur); + aDataset.mChannelMaskPage0 = tlv->GetMask(); aDataset.mIsChannelMaskPage0Set = true; break; } diff --git a/src/core/meshcop/dataset_local.cpp b/src/core/meshcop/dataset_local.cpp index bae25c40e..5a8af1b10 100644 --- a/src/core/meshcop/dataset_local.cpp +++ b/src/core/meshcop/dataset_local.cpp @@ -139,9 +139,8 @@ otError DatasetLocal::Get(otOperationalDataset &aDataset) const { if (reinterpret_cast(entry)->GetChannelPage() == 0) { - uint8_t i = sizeof(ChannelMaskEntry); - aDataset.mChannelMaskPage0 = static_cast(entry[i] | (entry[i + 1] << 8) | - (entry[i + 2] << 16) | (entry[i + 3] << 24)); + const ChannelMask0Tlv *tlv = static_cast(cur); + aDataset.mChannelMaskPage0 = tlv->GetMask(); aDataset.mIsChannelMaskPage0Set = true; break; }