diff options
author | Bill Richardson <wfrichar@chromium.org> | 2012-08-24 17:52:01 -0700 |
---|---|---|
committer | Gerrit <chrome-bot@google.com> | 2012-08-24 20:43:28 -0700 |
commit | da77e6953c96f9bb52a04dc32b337066144879aa (patch) | |
tree | 4cf0e87afa0909a70ba901a737c07d2acca3f631 /cgpt | |
parent | 263ffdfdd710a33a2a12ee33179f088292b2864f (diff) | |
download | vboot-da77e6953c96f9bb52a04dc32b337066144879aa.tar.gz |
cgpt: Fix error in modifying size of an existing partition
Modifying the size of an existing partition without modifying the start as
well assumed the start was at block 0. Sometimes it was caught, often it
wasn't.
Fix the error, add a test to catch the problem.
BUG=chrome-os-partner:13090
BRANCH=all
TEST=manual
make && make runtests
Change-Id: I4f5a5031a90a3e78d886ed3573f61305316a3f1f
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/31418
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Diffstat (limited to 'cgpt')
-rw-r--r-- | cgpt/cgpt_add.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/cgpt/cgpt_add.c b/cgpt/cgpt_add.c index f72b4de5..319754ac 100644 --- a/cgpt/cgpt_add.c +++ b/cgpt/cgpt_add.c @@ -297,7 +297,7 @@ int cgpt_add(CgptAddParams *params) { if (params->set_begin) entry->starting_lba = params->begin; if (params->set_size) - entry->ending_lba = params->begin + params->size - 1; + entry->ending_lba = entry->starting_lba + params->size - 1; if (params->set_type) memcpy(&entry->type, ¶ms->type_guid, sizeof(Guid)); if (params->set_unique) @@ -323,7 +323,7 @@ int cgpt_add(CgptAddParams *params) { if (0 != CheckEntries((GptEntry*)drive.gpt.primary_entries, (GptHeader*)drive.gpt.primary_header)) { memcpy(entry, &backup, sizeof(*entry)); - Error("At least a parameter is not allowed:\n"); + Error("At least one parameter is not allowed:\n"); Error(DumpCgptAddParams(params)); goto bad; } |