mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-11-24 10:14:55 +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 {
|
} else {
|
||||||
fprintf(stderr, "%s: bad key size from %s\n",
|
fprintf(stderr, "%s: bad key size from %s\n",
|
||||||
__func__, filename);
|
__func__, filename);
|
||||||
|
free(kdata);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
key_size += kdata_size;
|
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 WriteAndFreeGptData(VbExDiskHandle_t disk_handle, GptData *gptdata)
|
||||||
{
|
{
|
||||||
int skip_primary = 0;
|
int skip_primary = 0;
|
||||||
GptHeader *header = (GptHeader *)gptdata->primary_header;
|
GptHeader *header;
|
||||||
uint64_t entries_bytes =
|
uint64_t entries_bytes, entries_sectors;
|
||||||
(uint64_t)header->number_of_entries
|
|
||||||
* header->size_of_entry;
|
|
||||||
uint64_t entries_sectors = entries_bytes / gptdata->sector_bytes;
|
|
||||||
int ret = 1;
|
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
|
* TODO(namnguyen): Preserve padding between primary GPT header and
|
||||||
* its entries.
|
* its entries.
|
||||||
|
|||||||
@@ -223,6 +223,8 @@ uint32_t TlclRead(uint32_t index, void* data, uint32_t length) {
|
|||||||
if (result == TPM_SUCCESS && length > 0) {
|
if (result == TPM_SUCCESS && length > 0) {
|
||||||
uint8_t* nv_read_cursor = response + kTpmResponseHeaderLength;
|
uint8_t* nv_read_cursor = response + kTpmResponseHeaderLength;
|
||||||
FromTpmUint32(nv_read_cursor, &result_length);
|
FromTpmUint32(nv_read_cursor, &result_length);
|
||||||
|
if (result_length > length)
|
||||||
|
result_length = length; /* Truncate to fit buffer */
|
||||||
nv_read_cursor += sizeof(uint32_t);
|
nv_read_cursor += sizeof(uint32_t);
|
||||||
Memcpy(data, nv_read_cursor, result_length);
|
Memcpy(data, nv_read_cursor, result_length);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1081,6 +1081,22 @@ VbError_t VbSelectAndLoadKernel(VbCommonParams *cparams,
|
|||||||
VbExNvStorageRead(vnc.raw);
|
VbExNvStorageRead(vnc.raw);
|
||||||
VbNvSetup(&vnc);
|
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 */
|
/* Clear output params in case we fail */
|
||||||
kparams->disk_handle = NULL;
|
kparams->disk_handle = NULL;
|
||||||
kparams->partition_number = 0;
|
kparams->partition_number = 0;
|
||||||
@@ -1169,22 +1185,7 @@ VbError_t VbSelectAndLoadKernel(VbCommonParams *cparams,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Fill in params for calls to LoadKernel() */
|
/* Set up boot flags */
|
||||||
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;
|
|
||||||
p.boot_flags = 0;
|
p.boot_flags = 0;
|
||||||
if (shared->flags & VBSD_BOOT_DEV_SWITCH_ON)
|
if (shared->flags & VBSD_BOOT_DEV_SWITCH_ON)
|
||||||
p.boot_flags |= BOOT_FLAG_DEVELOPER;
|
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 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) {
|
if (!header || size > header->data_size - header->data_used) {
|
||||||
VBDEBUG(("VbSharedData buffer out of space.\n"));
|
VBDEBUG(("VbSharedData buffer out of space.\n"));
|
||||||
return 0; /* Not initialized, or not enough space left. */
|
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;
|
header->data_used += size;
|
||||||
return offs;
|
return offs;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ static char fmtbuf[MAX_FMT+1];
|
|||||||
static const char *fixfmt(const char *format)
|
static const char *fixfmt(const char *format)
|
||||||
{
|
{
|
||||||
int i;
|
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];
|
fmtbuf[i] = format[i];
|
||||||
if(format[i] == '%' && format[i+1] == 'L') {
|
if(format[i] == '%' && format[i+1] == 'L') {
|
||||||
fmtbuf[i+1] = 'l';
|
fmtbuf[i+1] = 'l';
|
||||||
|
|||||||
Reference in New Issue
Block a user