summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKota Tsuyuzaki <tsuyuzaki.kota@lab.ntt.co.jp>2016-07-12 08:37:00 -0700
committerKota Tsuyuzaki <tsuyuzaki.kota@lab.ntt.co.jp>2016-09-07 20:22:47 -0700
commitcb0daba975dfb3b7bffe402d7aa73fac19180f73 (patch)
tree95abb9857046643272b98b5a52b84eab947529a2 /src
parent89807c5aac829453d855c1adb6830bd3a12876b5 (diff)
downloadliberasurecode-cb0daba975dfb3b7bffe402d7aa73fac19180f73.tar.gz
Add get_by_desc ret val handling to get_fragment_size
As well as any other callers, libersurecode_get_fragment_size should handle the return value of liberasurecode_get_backend_instance_by_desc. Otherwise, get_by_desc can return NULL and it causes an invalid memory access in librerasurecode_get_fragment_size. Change-Id: I489f8b5d049610863b5e0b477b6ff70ead245b55
Diffstat (limited to 'src')
-rw-r--r--src/erasurecode.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/erasurecode.c b/src/erasurecode.c
index 73091fd..31fc884 100644
--- a/src/erasurecode.c
+++ b/src/erasurecode.c
@@ -1221,6 +1221,8 @@ int liberasurecode_get_fragment_size(int desc, int data_len)
{
ec_backend_t instance = liberasurecode_backend_instance_get_by_desc(desc);
// TODO: Create a common function to calculate fragment size also for preprocessing
+ if (NULL == instance)
+ return -EBACKENDNOTAVAIL;
int aligned_data_len = get_aligned_data_size(instance, data_len);
int size = (aligned_data_len / instance->args.uargs.k) + instance->common.backend_metadata_size;