diff options
| -rw-r--r-- | flashrom.c | 18 | ||||
| -rw-r--r-- | hwaccess.c | 4 | ||||
| -rw-r--r-- | pcidev.c | 4 | ||||
| -rw-r--r-- | serial.c | 2 | 
4 files changed, 25 insertions, 3 deletions
@@ -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);  	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. */  	memcpy(curcontents, oldcontents, size); @@ -1880,10 +1884,18 @@ int doit(struct flashchip *flash, int force, const char *filename, int read_it,  		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. */  	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. */  	memset(newcontents, 0xff, size);  	/* Side effect of the assumptions above: Default write action is erase @@ -226,6 +226,10 @@ int undo_mmio_write(void *p)  {									\  	struct undo_mmio_write_data *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->type = mmio_write_type_##c;		\  	undo_mmio_write_data->c##data = mmio_read##c(a);		\ @@ -295,6 +295,10 @@ int undo_pci_write(void *p)  {									\  	struct undo_pci_write_data *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->reg = b;					\  	undo_pci_write_data->type = pci_write_type_##c;			\ @@ -110,6 +110,8 @@ fdtype sp_openserport(char *dev, unsigned int baud)  	    (tolower((unsigned char)dev[1]) == 'o') &&  	    (tolower((unsigned char)dev[2]) == 'm')) {  		dev2 = malloc(strlen(dev) + 5); +		if (!dev2) +			sp_die("Error: Out of memory");  		strcpy(dev2, "\\\\.\\");  		strcpy(dev2 + 4, dev);  	}  | 
