From db4934103161b6a58673c2b0a00bebe4a44bbaa4 Mon Sep 17 00:00:00 2001 From: Andrew Jeffery Date: Fri, 2 Mar 2018 11:54:22 +1030 Subject: pnor_partition_table: Disallow ToC entries with start greater than end Change-Id: If0861efb0f6bccf82a2df94204821f22198e17b0 Signed-off-by: Andrew Jeffery --- pnor_partition_table.cpp | 8 ++++++++ test/vpnor/Makefile.am.include | 3 --- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/pnor_partition_table.cpp b/pnor_partition_table.cpp index 646f0c3..19bee87 100644 --- a/pnor_partition_table.cpp +++ b/pnor_partition_table.cpp @@ -317,6 +317,14 @@ void parseTocLine(const std::string& line, size_t blockSize, match[NAME_MATCH].str().c_str(), (end - start), blockSize); } + if (start >= end) + { + std::stringstream err; + err << "Partition " << match[NAME_MATCH].str() + << " has an invalid range: start offset (0x" << std::hex << start + << " is beyond open end (0x" << std::hex << end << ")\n"; + throw InvalidTocEntry(err.str()); + } writeSizes(part, start, end, blockSize); // Use the shift to convert "80" to 0x80000000 diff --git a/test/vpnor/Makefile.am.include b/test/vpnor/Makefile.am.include index 5c828d9..e70214e 100644 --- a/test/vpnor/Makefile.am.include +++ b/test/vpnor/Makefile.am.include @@ -89,7 +89,4 @@ check_PROGRAMS += \ %reldir%/write_patch \ %reldir%/toc_no_name \ %reldir%/toc_start_gt_end - -XFAIL_TESTS += \ - %reldir%/toc_start_gt_end endif -- cgit v1.2.1