summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Jeffery <andrew@aj.id.au>2018-02-27 16:27:02 +1030
committerAndrew Jeffery <andrew@aj.id.au>2018-03-24 13:59:32 +1030
commitb87aa329fa5b00a2f7f27e3cbe18dadad4dd4184 (patch)
tree4aef465fd922a4af19b88000fafc70a2e03c9937
parente8a79ff3ef259f63b98520519a5a4bf1d6cc6e94 (diff)
downloadphosphor-mboxd-b87aa329fa5b00a2f7f27e3cbe18dadad4dd4184.tar.gz
phosphor-mboxd-b87aa329fa5b00a2f7f27e3cbe18dadad4dd4184.zip
pnor_partition_table: Log errors for invalid properties
Change-Id: Ifabbbf43800a0bc3ed7672207a3d78fd4a475e10 Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
-rw-r--r--pnor_partition_table.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/pnor_partition_table.cpp b/pnor_partition_table.cpp
index 930b4a9..54bb347 100644
--- a/pnor_partition_table.cpp
+++ b/pnor_partition_table.cpp
@@ -303,7 +303,21 @@ void parseTocLine(const std::string& line, size_t blockSize,
unsigned long start =
std::stoul(match[START_ADDR_MATCH].str(), nullptr, 16);
+ if (start & (blockSize - 1))
+ {
+ MSG_ERR("Start offset 0x%lx for partition '%s' is not aligned to block "
+ "size 0x%zx\n",
+ start, match[NAME_MATCH].str().c_str(), blockSize);
+ }
+
unsigned long end = std::stoul(match[END_ADDR_MATCH].str(), nullptr, 16);
+ if ((end - start) & (blockSize - 1))
+ {
+ MSG_ERR("Partition '%s' has a size 0x%lx that is not aligned to block "
+ "size 0x%zx\n",
+ match[NAME_MATCH].str().c_str(), (end - start), blockSize);
+ }
+
writeSizes(part, start, end, blockSize);
// Use the shift to convert "80" to 0x80000000
OpenPOWER on IntegriCloud