summaryrefslogtreecommitdiff
path: root/cgpt
diff options
context:
space:
mode:
authorVadim Bendebury <vbendeb@chromium.org>2012-09-24 17:41:18 -0700
committerGerrit <chrome-bot@google.com>2012-09-26 12:02:24 -0700
commit65d3c277a2098d6149fb79f7881da5d78133ae57 (patch)
tree1201337eb351060e81fa513e2f13937796edec9e /cgpt
parent210c5ef2d9d060bebf5020da886e2cabd6e05d6d (diff)
downloadvboot-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')
-rw-r--r--cgpt/cgpt_add.c11
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;
}