From cb0daba975dfb3b7bffe402d7aa73fac19180f73 Mon Sep 17 00:00:00 2001 From: Kota Tsuyuzaki Date: Tue, 12 Jul 2016 08:37:00 -0700 Subject: 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 --- src/erasurecode.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src') 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; -- cgit v1.2.1