1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-04-27 23:22:37 +02:00

Fix unchecked malloc calls and casts of malloc return values

In the long term the exit calls should be replaced by returns.
until then this is the correct way to handle failures.

the casts are not needed (in C) and we don't cast malloc return values anywhere else.

Corresponding to flashrom svn r1370.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
This commit is contained in:
Stefan Tauner 2011-07-12 22:35:21 +00:00
parent ff56267ec0
commit 269de3533a
4 changed files with 25 additions and 3 deletions

View File

@ -1513,7 +1513,11 @@ int erase_and_write_flash(struct flashchip *flash, uint8_t *oldcontents, uint8_t
unsigned int usable_erasefunctions = count_usable_erasers(flash); unsigned int usable_erasefunctions = count_usable_erasers(flash);
msg_cinfo("Erasing and writing flash chip... "); msg_cinfo("Erasing and writing flash chip... ");
curcontents = (uint8_t *) malloc(size); curcontents = malloc(size);
if (!curcontents) {
msg_gerr("Out of memory!\n");
exit(1);
}
/* Copy oldcontents to curcontents to avoid clobbering oldcontents. */ /* Copy oldcontents to curcontents to avoid clobbering oldcontents. */
memcpy(curcontents, oldcontents, size); memcpy(curcontents, oldcontents, size);
@ -1880,10 +1884,18 @@ int doit(struct flashchip *flash, int force, const char *filename, int read_it,
goto out_nofree; goto out_nofree;
} }
oldcontents = (uint8_t *) malloc(size); oldcontents = malloc(size);
if (!oldcontents) {
msg_gerr("Out of memory!\n");
exit(1);
}
/* Assume worst case: All bits are 0. */ /* Assume worst case: All bits are 0. */
memset(oldcontents, 0x00, size); memset(oldcontents, 0x00, size);
newcontents = (uint8_t *) malloc(size); newcontents = malloc(size);
if (!newcontents) {
msg_gerr("Out of memory!\n");
exit(1);
}
/* Assume best case: All bits should be 1. */ /* Assume best case: All bits should be 1. */
memset(newcontents, 0xff, size); memset(newcontents, 0xff, size);
/* Side effect of the assumptions above: Default write action is erase /* Side effect of the assumptions above: Default write action is erase

View File

@ -226,6 +226,10 @@ int undo_mmio_write(void *p)
{ \ { \
struct undo_mmio_write_data *undo_mmio_write_data; \ struct undo_mmio_write_data *undo_mmio_write_data; \
undo_mmio_write_data = malloc(sizeof(struct undo_mmio_write_data)); \ undo_mmio_write_data = malloc(sizeof(struct undo_mmio_write_data)); \
if (!undo_mmio_write_data) { \
msg_gerr("Out of memory!\n"); \
exit(1); \
} \
undo_mmio_write_data->addr = a; \ undo_mmio_write_data->addr = a; \
undo_mmio_write_data->type = mmio_write_type_##c; \ undo_mmio_write_data->type = mmio_write_type_##c; \
undo_mmio_write_data->c##data = mmio_read##c(a); \ undo_mmio_write_data->c##data = mmio_read##c(a); \

View File

@ -295,6 +295,10 @@ int undo_pci_write(void *p)
{ \ { \
struct undo_pci_write_data *undo_pci_write_data; \ struct undo_pci_write_data *undo_pci_write_data; \
undo_pci_write_data = malloc(sizeof(struct undo_pci_write_data)); \ undo_pci_write_data = malloc(sizeof(struct undo_pci_write_data)); \
if (!undo_pci_write_data) { \
msg_gerr("Out of memory!\n"); \
exit(1); \
} \
undo_pci_write_data->dev = *a; \ undo_pci_write_data->dev = *a; \
undo_pci_write_data->reg = b; \ undo_pci_write_data->reg = b; \
undo_pci_write_data->type = pci_write_type_##c; \ undo_pci_write_data->type = pci_write_type_##c; \

View File

@ -110,6 +110,8 @@ fdtype sp_openserport(char *dev, unsigned int baud)
(tolower((unsigned char)dev[1]) == 'o') && (tolower((unsigned char)dev[1]) == 'o') &&
(tolower((unsigned char)dev[2]) == 'm')) { (tolower((unsigned char)dev[2]) == 'm')) {
dev2 = malloc(strlen(dev) + 5); dev2 = malloc(strlen(dev) + 5);
if (!dev2)
sp_die("Error: Out of memory");
strcpy(dev2, "\\\\.\\"); strcpy(dev2, "\\\\.\\");
strcpy(dev2 + 4, dev); strcpy(dev2 + 4, dev);
} }