summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOliver McFadden <z3ro.geek@gmail.com>2007-10-11 03:28:35 +0000
committerOliver McFadden <z3ro.geek@gmail.com>2007-10-11 03:28:35 +0000
commit8ae59cb1cd5567f3d69281be23949f195386c71f (patch)
treeff8cf2027495c954505e0eefbc2f1f2e6437e576
parent2bb28df62516fb95b3fe9a416499b44591790dfb (diff)
Added error checking for malloc calls.
-rw-r--r--src/revenge_detect.c7
-rw-r--r--src/revenge_memory.c22
2 files changed, 25 insertions, 4 deletions
diff --git a/src/revenge_detect.c b/src/revenge_detect.c
index e5bbebd..7f16654 100644
--- a/src/revenge_detect.c
+++ b/src/revenge_detect.c
@@ -211,7 +211,12 @@ detect_reg_aperture (void)
{
if (pci_filter_match (&filter, pdev))
{
- pci_config = (unsigned char *) malloc (64);
+ if (!(pci_config = (unsigned char *) malloc (64)))
+ {
+ fprintf (stderr, "%s: %s\n", program_invocation_short_name,
+ strerror (errno));
+ exit (EXIT_FAILURE);
+ }
if (pci_read_block (pdev, 0, pci_config, 64))
{
pci_setup_cache (pdev, pci_config, 64);
diff --git a/src/revenge_memory.c b/src/revenge_memory.c
index 87930e7..46186dd 100644
--- a/src/revenge_memory.c
+++ b/src/revenge_memory.c
@@ -37,7 +37,13 @@ memory_read_agp (unsigned int addr, unsigned int size)
{
void *tmp;
- tmp = (void *) malloc (size);
+ if (!(tmp = (void *) malloc (size)))
+ {
+ fprintf (stderr, "%s: %s\n", program_invocation_short_name,
+ strerror (errno));
+ exit (EXIT_FAILURE);
+ }
+
memcpy (tmp, agp_mem_map + ((addr - agp_addr) >> 2), size);
return tmp;
@@ -82,7 +88,12 @@ memory_read_pcigart (unsigned int addr, unsigned int size)
start_page_addr = round_down (addr, ATI_PCIGART_PAGE_SIZE);
end_page_addr = start_page_addr + buf_size;
- mem_map = (void *) malloc (buf_size);
+ if (!(mem_map = (void *) malloc (buf_size)))
+ {
+ fprintf (stderr, "%s: %s\n", program_invocation_short_name,
+ strerror (errno));
+ exit (EXIT_FAILURE);
+ }
#if 0
printf
@@ -114,7 +125,12 @@ memory_read_pcigart (unsigned int addr, unsigned int size)
}
}
- dest = (void *) malloc (size);
+ if (!(dest = (void *) malloc (size)))
+ {
+ fprintf (stderr, "%s: %s\n", program_invocation_short_name,
+ strerror (errno));
+ exit (EXIT_FAILURE);
+ }
memcpy (dest, mem_map + addr_mod, size);
free (mem_map);