diff options
author | Oliver McFadden <z3ro.geek@gmail.com> | 2007-10-11 03:28:35 +0000 |
---|---|---|
committer | Oliver McFadden <z3ro.geek@gmail.com> | 2007-10-11 03:28:35 +0000 |
commit | 8ae59cb1cd5567f3d69281be23949f195386c71f (patch) | |
tree | ff8cf2027495c954505e0eefbc2f1f2e6437e576 | |
parent | 2bb28df62516fb95b3fe9a416499b44591790dfb (diff) |
Added error checking for malloc calls.
-rw-r--r-- | src/revenge_detect.c | 7 | ||||
-rw-r--r-- | src/revenge_memory.c | 22 |
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); |