Skip to content

Commit

Permalink
Minor coverity fixes
Browse files Browse the repository at this point in the history
- one missing free
- one minor deadcode issue
- two unchecked allocations
- one debug hexdump of a variable we just freed

Signed-off-by: Peter Jones <[email protected]>
  • Loading branch information
vathpela committed Dec 10, 2021
1 parent 2e78cd9 commit d0df930
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 4 deletions.
1 change: 1 addition & 0 deletions MokManager.c
Original file line number Diff line number Diff line change
Expand Up @@ -339,6 +339,7 @@ static void show_x509_info(X509 * X509Cert, UINT8 * hash)
for (i = 0; i < n; i++) {
CatPrint(&serial_string, L"%02x:", hexbuf[i]);
}
BN_free(bnser);
}

if (serial_string.str)
Expand Down
7 changes: 5 additions & 2 deletions fallback.c
Original file line number Diff line number Diff line change
Expand Up @@ -230,8 +230,11 @@ add_boot_option(EFI_DEVICE_PATH *hddp, EFI_DEVICE_PATH *fulldp,
StrLen(label)*2 + 2 + DevicePathSize(hddp) +
StrLen(arguments) * 2;

CHAR8 *data = AllocateZeroPool(size + 2);
CHAR8 *cursor = data;
CHAR8 *data, *cursor;
cursor = data = AllocateZeroPool(size + 2);
if (!data)
return EFI_OUT_OF_RESOURCES;

*(UINT32 *)cursor = LOAD_OPTION_ACTIVE;
cursor += sizeof (UINT32);
*(UINT16 *)cursor = DevicePathSize(hddp);
Expand Down
7 changes: 6 additions & 1 deletion include/hexdump.h
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ prepare_text(const void *data, size_t size, char *buf, unsigned int position)
else
buf[offset++] = '.';
}
buf[offset++] = size > 0 ? '|' : 'X';
buf[offset++] = '|';
buf[offset] = '\0';
}

Expand All @@ -89,6 +89,11 @@ vhexdumpf(const char *file, int line, const char *func, const CHAR16 *const fmt,
if (verbose == 0)
return;

if (!data || !size) {
dprint(L"hexdump of a NULL pointer!\n");
return;
}

while (offset < size) {
char hexbuf[49];
char txtbuf[19];
Expand Down
2 changes: 2 additions & 0 deletions lib/variables.c
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,8 @@ fill_esl_with_one_signature(const uint8_t *data, const uint32_t data_len,

if (out) {
sd = AllocateZeroPool(sig_size);
if (!sd)
return EFI_OUT_OF_RESOURCES;
if (owner)
CopyMem(sd, (void *)owner, sizeof(EFI_GUID));
CopyMem(sd->SignatureData, (void *)data, data_len);
Expand Down
4 changes: 3 additions & 1 deletion mok.c
Original file line number Diff line number Diff line change
Expand Up @@ -883,7 +883,9 @@ EFI_STATUS import_one_mok_state(struct mok_state_variable *v,
}

dprint(L"maybe mirroring \"%s\". original data:\n", v->name);
dhexdumpat(v->data, v->data_size, 0);
if (v->data && v->data_size) {
dhexdumpat(v->data, v->data_size, 0);
}

ret = maybe_mirror_one_mok_variable(v, ret, only_first);
dprint(L"returning %r\n", ret);
Expand Down

0 comments on commit d0df930

Please sign in to comment.