diff options
author | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2012-10-22 09:17:17 -0400 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2012-12-02 14:10:18 -0500 |
commit | 6fa79bcaecdbb0eb417afbc7fb0a8fa204308b62 (patch) | |
tree | 6be7fae45b04d900288c1ed70907fa97f2623cb3 /tools | |
parent | 9489e9dcae718d5fde988e4a684a0f55b5f94d17 (diff) |
tools/firewire: nosy-dump: check for allocation failure
Behavior of null pointer dereference is undefined in the C language.
Portably implement the desired behavior.
Reported-by: Yang Yeping <yangyeping_666@hotmail.com>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/firewire/nosy-dump.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/tools/firewire/nosy-dump.c b/tools/firewire/nosy-dump.c index f93b776370b6..3179c711bd65 100644 --- a/tools/firewire/nosy-dump.c +++ b/tools/firewire/nosy-dump.c | |||
@@ -150,6 +150,8 @@ subaction_create(uint32_t *data, size_t length) | |||
150 | 150 | ||
151 | /* we put the ack in the subaction struct for easy access. */ | 151 | /* we put the ack in the subaction struct for easy access. */ |
152 | sa = malloc(sizeof *sa - sizeof sa->packet + length); | 152 | sa = malloc(sizeof *sa - sizeof sa->packet + length); |
153 | if (!sa) | ||
154 | exit(EXIT_FAILURE); | ||
153 | sa->ack = data[length / 4 - 1]; | 155 | sa->ack = data[length / 4 - 1]; |
154 | sa->length = length; | 156 | sa->length = length; |
155 | memcpy(&sa->packet, data, length); | 157 | memcpy(&sa->packet, data, length); |
@@ -180,6 +182,8 @@ link_transaction_lookup(int request_node, int response_node, int tlabel) | |||
180 | } | 182 | } |
181 | 183 | ||
182 | t = malloc(sizeof *t); | 184 | t = malloc(sizeof *t); |
185 | if (!t) | ||
186 | exit(EXIT_FAILURE); | ||
183 | t->request_node = request_node; | 187 | t->request_node = request_node; |
184 | t->response_node = response_node; | 188 | t->response_node = response_node; |
185 | t->tlabel = tlabel; | 189 | t->tlabel = tlabel; |