summaryrefslogtreecommitdiff
path: root/src/erasurecode.c
diff options
context:
space:
mode:
authorKota Tsuyuzaki <bloodeagle40234@gmail.com>2015-08-18 08:16:07 +0000
committerTushar Gohad <tushar.gohad@intel.com>2015-08-18 08:30:34 +0000
commitc9ce822825a55e3254c2f9e74a139fc89310ddc0 (patch)
treef74557392be088077f23b7af2f8568b128303555 /src/erasurecode.c
parent63829197d588c536898b6499a58639ae8029ac50 (diff)
downloadliberasurecode-c9ce822825a55e3254c2f9e74a139fc89310ddc0.tar.gz
Enforce the (k + m < 32) limit, add unit tests
Diffstat (limited to 'src/erasurecode.c')
-rw-r--r--src/erasurecode.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/erasurecode.c b/src/erasurecode.c
index 57054b9..7379524 100644
--- a/src/erasurecode.c
+++ b/src/erasurecode.c
@@ -253,6 +253,12 @@ int liberasurecode_instance_create(const ec_backend_id_t id,
if (id >= EC_BACKENDS_MAX)
return -EBACKENDNOTSUPP;
+ if ((args->k + args->m) > EC_MAX_FRAGMENTS) {
+ log_error("Total number of fragments (k + m) must be less than %d\n",
+ EC_MAX_FRAGMENTS);
+ return -EINVALIDPARAMS;
+ }
+
/* Allocate memory for ec_backend instance */
instance = calloc(1, sizeof(*instance));
if (NULL == instance)