diff options
author | Vadim Bendebury <vbendeb@chromium.org> | 2012-09-24 17:41:18 -0700 |
---|---|---|
committer | Gerrit <chrome-bot@google.com> | 2012-09-26 12:02:24 -0700 |
commit | 65d3c277a2098d6149fb79f7881da5d78133ae57 (patch) | |
tree | 1201337eb351060e81fa513e2f13937796edec9e /cgpt/cgpt_add.c | |
parent | 210c5ef2d9d060bebf5020da886e2cabd6e05d6d (diff) | |
download | vboot-65d3c277a2098d6149fb79f7881da5d78133ae57.tar.gz |
Make cgpt_add error messages a little more verbose
When the cgpt utility complaints about parameter errors, it is
impossible to tell what exactly went wrong. This change consolidates
error definitions and adds a function to convert integer error values
into text messages.
BRANCH=none
BUG=none
TEST=manual
. emerge-link vbooot_reference
. copy generated `cgpt' to a Link device
. run command with wrong arguments with respect to the existing GPT:
localhost var # ./cgpt add -i 3 -b 3985408 -s 1757184 -t rootfs -l ROOT-A /dev/sda
ERROR: cgpt add: Starting LBA overlaps
ERROR: cgpt add: -i 3 -l ROOT-A -b 3985408 -s 1757184 -t 3CB8E202-3B7E-47DD-8A3C-7FF2A13CFCEC
. on the host, in the chroot in src/platform/vboot_reference run
$ make && make runtests
observe all tests succeed
Change-Id: Ibd23ca0430a875f70524adc99e0509b26ae699b2
Signed-off-by: Vadim Bendebury <vbendeb@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/34003
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Diffstat (limited to 'cgpt/cgpt_add.c')
-rw-r--r-- | cgpt/cgpt_add.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/cgpt/cgpt_add.c b/cgpt/cgpt_add.c index 319754ac..ada323e3 100644 --- a/cgpt/cgpt_add.c +++ b/cgpt/cgpt_add.c @@ -232,6 +232,7 @@ int cgpt_add(CgptAddParams *params) { int gpt_retval; GptEntry *entry, backup; uint32_t index; + int rv; if (params == NULL) return CGPT_FAILED; @@ -319,11 +320,13 @@ int cgpt_add(CgptAddParams *params) { GPT_MODIFIED_HEADER2 | GPT_MODIFIED_ENTRIES2); UpdateCrc(&drive.gpt); - // If the modified entry is illegal, recovery it and return error. - if (0 != CheckEntries((GptEntry*)drive.gpt.primary_entries, - (GptHeader*)drive.gpt.primary_header)) { + rv = CheckEntries((GptEntry*)drive.gpt.primary_entries, + (GptHeader*)drive.gpt.primary_header); + + if (0 != rv) { + // If the modified entry is illegal, recover it and return error. memcpy(entry, &backup, sizeof(*entry)); - Error("At least one parameter is not allowed:\n"); + Error("%s\n", GptErrorText(rv)); Error(DumpCgptAddParams(params)); goto bad; } |