summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Lambert <eric_lambert@xyratex.com>2014-10-01 10:15:42 -0400
committerEric Lambert <eric_lambert@xyratex.com>2014-10-01 10:15:42 -0400
commit047bcf5330876dd9304bb62a9c69d42b4affdca2 (patch)
treefac45061f8bfc42cd9d8bad8e3fd5cdd55303973
parent3d0fc3714cdd58116da744fa65d78718633a5504 (diff)
parent42870dff1f80e635d417ee1e83572d213f87f74c (diff)
downloadliberasurecode-047bcf5330876dd9304bb62a9c69d42b4affdca2.tar.gz
Merged in malloc_check (pull request #6)
Small fix to check the return code when malloc'ing temporary buffers.
-rw-r--r--src/erasurecode_preprocessing.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/erasurecode_preprocessing.c b/src/erasurecode_preprocessing.c
index c3e5ed6..62134ba 100644
--- a/src/erasurecode_preprocessing.c
+++ b/src/erasurecode_preprocessing.c
@@ -143,6 +143,10 @@ int prepare_fragments_for_decode(
*realloc_bm = *realloc_bm | (1 << i);
} else if (!is_addr_aligned((unsigned long)data[i], 16)) {
char *tmp_buf = alloc_fragment_buffer(fragment_size - sizeof(fragment_header_t));
+ if (NULL == tmp_buf) {
+ log_error("Could not allocate temp buffer!");
+ return -1;
+ }
memcpy(tmp_buf, data[i], fragment_size);
data[i] = tmp_buf;
*realloc_bm = *realloc_bm | (1 << i);
@@ -178,6 +182,10 @@ int prepare_fragments_for_decode(
*realloc_bm = *realloc_bm | (1 << (k + i));
} else if (!is_addr_aligned((unsigned long)parity[i], 16)) {
char *tmp_buf = alloc_fragment_buffer(fragment_size-sizeof(fragment_header_t));
+ if (NULL == tmp_buf) {
+ log_error("Could not allocate temp buffer!");
+ return -1;
+ }
memcpy(tmp_buf, parity[i], fragment_size);
parity[i] = tmp_buf;
*realloc_bm = *realloc_bm | (1 << (k + i));