mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-11-24 02:05:01 +00:00
Fix coverity warnings in firmware
Assorted minor code issues, which we should fix so any new errors stand out more. BUG=chromium:643769 BRANCH=none TEST=make runtests Change-Id: I84182df0d0e222f4f60206c621ec62e1ee283adb Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/380697 Reviewed-by: Stefan Reinauer <reinauer@chromium.org>
This commit is contained in:
committed by
chrome-bot
parent
f7559e4b46
commit
1589f94dc1
@@ -123,6 +123,7 @@ struct bdb_key *bdb_create_key(const char *filename,
|
||||
} else {
|
||||
fprintf(stderr, "%s: bad key size from %s\n",
|
||||
__func__, filename);
|
||||
free(kdata);
|
||||
return NULL;
|
||||
}
|
||||
key_size += kdata_size;
|
||||
|
||||
@@ -123,13 +123,20 @@ int AllocAndReadGptData(VbExDiskHandle_t disk_handle, GptData *gptdata)
|
||||
int WriteAndFreeGptData(VbExDiskHandle_t disk_handle, GptData *gptdata)
|
||||
{
|
||||
int skip_primary = 0;
|
||||
GptHeader *header = (GptHeader *)gptdata->primary_header;
|
||||
uint64_t entries_bytes =
|
||||
(uint64_t)header->number_of_entries
|
||||
* header->size_of_entry;
|
||||
uint64_t entries_sectors = entries_bytes / gptdata->sector_bytes;
|
||||
GptHeader *header;
|
||||
uint64_t entries_bytes, entries_sectors;
|
||||
int ret = 1;
|
||||
|
||||
header = (GptHeader *)gptdata->primary_header;
|
||||
if (!header)
|
||||
header = (GptHeader *)gptdata->secondary_header;
|
||||
if (!header)
|
||||
return 1; /* No headers at all, so nothing to write */
|
||||
|
||||
entries_bytes = (uint64_t)header->number_of_entries
|
||||
* header->size_of_entry;
|
||||
entries_sectors = entries_bytes / gptdata->sector_bytes;
|
||||
|
||||
/*
|
||||
* TODO(namnguyen): Preserve padding between primary GPT header and
|
||||
* its entries.
|
||||
|
||||
@@ -223,6 +223,8 @@ uint32_t TlclRead(uint32_t index, void* data, uint32_t length) {
|
||||
if (result == TPM_SUCCESS && length > 0) {
|
||||
uint8_t* nv_read_cursor = response + kTpmResponseHeaderLength;
|
||||
FromTpmUint32(nv_read_cursor, &result_length);
|
||||
if (result_length > length)
|
||||
result_length = length; /* Truncate to fit buffer */
|
||||
nv_read_cursor += sizeof(uint32_t);
|
||||
Memcpy(data, nv_read_cursor, result_length);
|
||||
}
|
||||
|
||||
@@ -1081,6 +1081,22 @@ VbError_t VbSelectAndLoadKernel(VbCommonParams *cparams,
|
||||
VbExNvStorageRead(vnc.raw);
|
||||
VbNvSetup(&vnc);
|
||||
|
||||
/* Fill in params for calls to LoadKernel() */
|
||||
Memset(&p, 0, sizeof(p));
|
||||
p.shared_data_blob = cparams->shared_data_blob;
|
||||
p.shared_data_size = cparams->shared_data_size;
|
||||
p.gbb_data = cparams->gbb_data;
|
||||
p.gbb_size = cparams->gbb_size;
|
||||
p.fwmp = &fwmp;
|
||||
p.nv_context = &vnc;
|
||||
|
||||
/*
|
||||
* This could be set to NULL, in which case the vboot header
|
||||
* information about the load address and size will be used.
|
||||
*/
|
||||
p.kernel_buffer = kparams->kernel_buffer;
|
||||
p.kernel_buffer_size = kparams->kernel_buffer_size;
|
||||
|
||||
/* Clear output params in case we fail */
|
||||
kparams->disk_handle = NULL;
|
||||
kparams->partition_number = 0;
|
||||
@@ -1169,22 +1185,7 @@ VbError_t VbSelectAndLoadKernel(VbCommonParams *cparams,
|
||||
}
|
||||
}
|
||||
|
||||
/* Fill in params for calls to LoadKernel() */
|
||||
Memset(&p, 0, sizeof(p));
|
||||
p.shared_data_blob = cparams->shared_data_blob;
|
||||
p.shared_data_size = cparams->shared_data_size;
|
||||
p.gbb_data = cparams->gbb_data;
|
||||
p.gbb_size = cparams->gbb_size;
|
||||
p.fwmp = &fwmp;
|
||||
|
||||
/*
|
||||
* This could be set to NULL, in which case the vboot header
|
||||
* information about the load address and size will be used.
|
||||
*/
|
||||
p.kernel_buffer = kparams->kernel_buffer;
|
||||
p.kernel_buffer_size = kparams->kernel_buffer_size;
|
||||
|
||||
p.nv_context = &vnc;
|
||||
/* Set up boot flags */
|
||||
p.boot_flags = 0;
|
||||
if (shared->flags & VBSD_BOOT_DEV_SWITCH_ON)
|
||||
p.boot_flags |= BOOT_FLAG_DEVELOPER;
|
||||
|
||||
@@ -419,14 +419,14 @@ int VerifyVmlinuzInsideKBlob(uint64_t kblob, uint64_t kblob_size,
|
||||
|
||||
uint64_t VbSharedDataReserve(VbSharedDataHeader *header, uint64_t size)
|
||||
{
|
||||
uint64_t offs = header->data_used;
|
||||
|
||||
VBDEBUG(("VbSharedDataReserve %d bytes at %d\n", (int)size, (int)offs));
|
||||
|
||||
if (!header || size > header->data_size - header->data_used) {
|
||||
VBDEBUG(("VbSharedData buffer out of space.\n"));
|
||||
return 0; /* Not initialized, or not enough space left. */
|
||||
}
|
||||
|
||||
uint64_t offs = header->data_used;
|
||||
VBDEBUG(("VbSharedDataReserve %d bytes at %d\n", (int)size, (int)offs));
|
||||
|
||||
header->data_used += size;
|
||||
return offs;
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ static char fmtbuf[MAX_FMT+1];
|
||||
static const char *fixfmt(const char *format)
|
||||
{
|
||||
int i;
|
||||
for(i=0; i<MAX_FMT && format[i]; i++) {
|
||||
for(i=0; i<sizeof(fmtbuf)-1 && format[i]; i++) {
|
||||
fmtbuf[i] = format[i];
|
||||
if(format[i] == '%' && format[i+1] == 'L') {
|
||||
fmtbuf[i+1] = 'l';
|
||||
|
||||
Reference in New Issue
Block a user