mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-11-24 02:05:01 +00:00
Code cleanup.
Fix improper test of return value, replace order-dependent indices with enumerated types in option parsing. Review URL: http://codereview.chromium.org/2183001
This commit is contained in:
@@ -80,98 +80,110 @@ void KernelUtility::PrintUsage(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool KernelUtility::ParseCmdLineOptions(int argc, char* argv[]) {
|
bool KernelUtility::ParseCmdLineOptions(int argc, char* argv[]) {
|
||||||
int option_index;
|
int option_index, i;
|
||||||
|
enum {
|
||||||
|
OPT_FIRMWARE_KEY = 1000,
|
||||||
|
OPT_FIRMWARE_KEY_PUB,
|
||||||
|
OPT_KERNEL_KEY,
|
||||||
|
OPT_KERNEL_KEY_PUB,
|
||||||
|
OPT_FIRMWARE_SIGN_ALGORITHM,
|
||||||
|
OPT_KERNEL_SIGN_ALGORITHM,
|
||||||
|
OPT_KERNEL_KEY_VERSION,
|
||||||
|
OPT_KERNEL_VERSION,
|
||||||
|
OPT_IN,
|
||||||
|
OPT_OUT,
|
||||||
|
OPT_GENERATE,
|
||||||
|
OPT_VERIFY,
|
||||||
|
OPT_DESCRIBE,
|
||||||
|
OPT_CONFIG,
|
||||||
|
OPT_VBLOCK,
|
||||||
|
};
|
||||||
static struct option long_options[] = {
|
static struct option long_options[] = {
|
||||||
{"firmware_key", 1, 0, 0},
|
{"firmware_key", 1, 0, OPT_FIRMWARE_KEY },
|
||||||
{"firmware_key_pub", 1, 0, 0},
|
{"firmware_key_pub", 1, 0, OPT_FIRMWARE_KEY_PUB },
|
||||||
{"kernel_key", 1, 0, 0},
|
{"kernel_key", 1, 0, OPT_KERNEL_KEY },
|
||||||
{"kernel_key_pub", 1, 0, 0},
|
{"kernel_key_pub", 1, 0, OPT_KERNEL_KEY_PUB },
|
||||||
{"firmware_sign_algorithm", 1, 0, 0},
|
{"firmware_sign_algorithm", 1, 0, OPT_FIRMWARE_SIGN_ALGORITHM },
|
||||||
{"kernel_sign_algorithm", 1, 0, 0},
|
{"kernel_sign_algorithm", 1, 0, OPT_KERNEL_SIGN_ALGORITHM },
|
||||||
{"kernel_key_version", 1, 0, 0},
|
{"kernel_key_version", 1, 0, OPT_KERNEL_KEY_VERSION },
|
||||||
{"kernel_version", 1, 0, 0},
|
{"kernel_version", 1, 0, OPT_KERNEL_VERSION },
|
||||||
{"in", 1, 0, 0},
|
{"in", 1, 0, OPT_IN },
|
||||||
{"out", 1, 0, 0},
|
{"out", 1, 0, OPT_OUT },
|
||||||
{"generate", 0, 0, 0},
|
{"generate", 0, 0, OPT_GENERATE },
|
||||||
{"verify", 0, 0, 0},
|
{"verify", 0, 0, OPT_VERIFY },
|
||||||
{"describe", 0, 0, 0},
|
{"describe", 0, 0, OPT_DESCRIBE },
|
||||||
{"config", 1, 0, 0},
|
{"config", 1, 0, OPT_CONFIG },
|
||||||
{"vblock", 0, 0, 0},
|
{"vblock", 0, 0, OPT_VBLOCK },
|
||||||
{NULL, 0, 0, 0}
|
{NULL, 0, 0, 0}
|
||||||
};
|
};
|
||||||
while (1) {
|
while ((i = getopt_long(argc, argv, "", long_options, &option_index)) != -1) {
|
||||||
int i = getopt_long(argc, argv, "", long_options, &option_index);
|
switch (i) {
|
||||||
if (-1 == i) // Done with option processing.
|
case '?':
|
||||||
break;
|
|
||||||
if ('?' == i) // Invalid option found.
|
|
||||||
return false;
|
return false;
|
||||||
|
break;
|
||||||
if (0 == i) {
|
case OPT_FIRMWARE_KEY:
|
||||||
switch (option_index) {
|
|
||||||
case 0: // firmware_key
|
|
||||||
firmware_key_file_ = optarg;
|
firmware_key_file_ = optarg;
|
||||||
break;
|
break;
|
||||||
case 1: // firmware_key_pub
|
case OPT_FIRMWARE_KEY_PUB:
|
||||||
firmware_key_pub_file_ = optarg;
|
firmware_key_pub_file_ = optarg;
|
||||||
break;
|
break;
|
||||||
case 2: // kernel_key
|
case OPT_KERNEL_KEY:
|
||||||
kernel_key_file_ = optarg;
|
kernel_key_file_ = optarg;
|
||||||
break;
|
break;
|
||||||
case 3: // kernel_key_pub
|
case OPT_KERNEL_KEY_PUB:
|
||||||
kernel_key_pub_file_ = optarg;
|
kernel_key_pub_file_ = optarg;
|
||||||
break;
|
break;
|
||||||
case 4: // firmware_sign_algorithm
|
case OPT_FIRMWARE_SIGN_ALGORITHM:
|
||||||
errno = 0; // strtol() returns an error via errno
|
errno = 0; // strtol() returns an error via errno
|
||||||
firmware_sign_algorithm_ = strtol(optarg,
|
firmware_sign_algorithm_ = strtol(optarg,
|
||||||
reinterpret_cast<char**>(NULL), 10);
|
reinterpret_cast<char**>(NULL), 10);
|
||||||
if (errno)
|
if (errno)
|
||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
case 5: // kernel_sign_algorithm
|
case OPT_KERNEL_SIGN_ALGORITHM:
|
||||||
errno = 0;
|
errno = 0;
|
||||||
kernel_sign_algorithm_ = strtol(optarg,
|
kernel_sign_algorithm_ = strtol(optarg,
|
||||||
reinterpret_cast<char**>(NULL), 10);
|
reinterpret_cast<char**>(NULL), 10);
|
||||||
if (errno)
|
if (errno)
|
||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
case 6: // kernel_key_version
|
case OPT_KERNEL_KEY_VERSION:
|
||||||
errno = 0;
|
errno = 0;
|
||||||
kernel_key_version_ = strtol(optarg,
|
kernel_key_version_ = strtol(optarg,
|
||||||
reinterpret_cast<char**>(NULL), 10);
|
reinterpret_cast<char**>(NULL), 10);
|
||||||
if (errno)
|
if (errno)
|
||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
case 7: // kernel_version
|
case OPT_KERNEL_VERSION:
|
||||||
errno = 0;
|
errno = 0;
|
||||||
kernel_version_ = strtol(optarg,
|
kernel_version_ = strtol(optarg,
|
||||||
reinterpret_cast<char**>(NULL), 10);
|
reinterpret_cast<char**>(NULL), 10);
|
||||||
if (errno)
|
if (errno)
|
||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
case 8: // in
|
case OPT_IN:
|
||||||
in_file_ = optarg;
|
in_file_ = optarg;
|
||||||
break;
|
break;
|
||||||
case 9: // out
|
case OPT_OUT:
|
||||||
out_file_ = optarg;
|
out_file_ = optarg;
|
||||||
break;
|
break;
|
||||||
case 10: // generate
|
case OPT_GENERATE:
|
||||||
is_generate_ = true;
|
is_generate_ = true;
|
||||||
break;
|
break;
|
||||||
case 11: // verify
|
case OPT_VERIFY:
|
||||||
is_verify_ = true;
|
is_verify_ = true;
|
||||||
break;
|
break;
|
||||||
case 12: // describe
|
case OPT_DESCRIBE:
|
||||||
is_describe_ = true;
|
is_describe_ = true;
|
||||||
break;
|
break;
|
||||||
case 13: // config
|
case OPT_CONFIG:
|
||||||
config_file_ = optarg;
|
config_file_ = optarg;
|
||||||
break;
|
break;
|
||||||
case 14: // vblock
|
case OPT_VBLOCK:
|
||||||
is_only_vblock_ = true;
|
is_only_vblock_ = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return CheckOptions();
|
return CheckOptions();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -232,7 +244,7 @@ bool KernelUtility::GenerateSignedImage(void) {
|
|||||||
}
|
}
|
||||||
image_->kernel_data = BufferFromFile(in_file_.c_str(),
|
image_->kernel_data = BufferFromFile(in_file_.c_str(),
|
||||||
&image_->kernel_len);
|
&image_->kernel_len);
|
||||||
if (!image_)
|
if (!image_->kernel_data)
|
||||||
return false;
|
return false;
|
||||||
// Generate and add the signatures.
|
// Generate and add the signatures.
|
||||||
if (!AddKernelKeySignature(image_, firmware_key_file_.c_str())) {
|
if (!AddKernelKeySignature(image_, firmware_key_file_.c_str())) {
|
||||||
|
|||||||
Reference in New Issue
Block a user