diff options
author | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2010-06-05 14:55:53 +0200 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2010-09-07 11:18:05 +0200 |
commit | 9d47becf251d8601e834e777d6f7f10eb62ec8dc (patch) | |
tree | b4456c1c530787eda26ed71d784efdc4aca9f8c3 | |
parent | b15039ceb814ee4c685deec554f342480391b775 (diff) | |
download | libraw1394-9d47becf251d8601e834e777d6f7f10eb62ec8dc.tar.gz |
Add missing malloc failure checks
Also add errno = ENOMEM because it is said that that some malloc
implementations might miss to do so.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
-rw-r--r-- | src/fw-iso.c | 4 | ||||
-rw-r--r-- | src/fw.c | 20 |
2 files changed, 19 insertions, 5 deletions
diff --git a/src/fw-iso.c b/src/fw-iso.c index 88909dc..5aac9fe 100644 --- a/src/fw-iso.c +++ b/src/fw-iso.c @@ -463,8 +463,10 @@ iso_init(fw_handle_t handle, int type, handle->iso.packet_count = 0; handle->iso.packets = malloc(handle->iso.irq_interval * sizeof handle->iso.packets[0]); - if (handle->iso.packets == NULL) + if (handle->iso.packets == NULL) { + errno = ENOMEM; return -1; + } handle->iso.fd = open(handle->iso.filename, O_RDWR); if (handle->iso.fd < 0) { @@ -419,9 +419,13 @@ fw_handle_t fw_new_handle(void) struct epoll_event ep; int i; - memset(&ep, 0, sizeof(ep)); - handle = malloc(sizeof *handle); + if (handle == NULL) { + errno = ENOMEM; + return NULL; + } + + memset(&ep, 0, sizeof(ep)); memset(handle, 0, sizeof(*handle)); handle->tag_handler = default_tag_handler; @@ -775,6 +779,10 @@ handle_arm_request(raw1394handle_t handle, struct address_closure *ac, return 0; rrb = malloc(sizeof *rrb + in_length + response.length); + if (rrb == NULL) { + errno == ENOMEM; + return -1; + } rrb->request_response.request = &rrb->request; rrb->request_response.response = &rrb->response; @@ -818,8 +826,10 @@ fw_arm_register(fw_handle_t handle, nodeaddr_t start, int retval; allocation = malloc(sizeof *allocation + length); - if (allocation == NULL) + if (allocation == NULL) { + errno = ENOMEM; return -1; + } allocation->closure.callback = handle_arm_request; allocation->buffer = initial_value; @@ -1318,8 +1328,10 @@ fw_start_fcp_listen(fw_handle_t handle) struct address_closure *closure; closure = malloc(sizeof *closure); - if (closure == NULL) + if (closure == NULL) { + errno = ENOMEM; return -1; + } closure->callback = handle_fcp_request; |