Merge "Negative data or parity args are invalid"

This commit is contained in:
Jenkins 2017-09-13 21:24:27 +00:00 committed by Gerrit Code Review
commit 3ff4b22bc1
2 changed files with 19 additions and 19 deletions

View File

@ -274,6 +274,8 @@ int liberasurecode_instance_create(const ec_backend_id_t id,
if (id >= EC_BACKENDS_MAX)
return -EBACKENDNOTSUPP;
if (args->k < 0 || args->m < 0)
return -EINVALIDPARAMS;
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);

View File

@ -519,32 +519,30 @@ static void test_backend_available_invalid_args()
static void test_create_backend_invalid_args()
{
int desc = liberasurecode_instance_create(-1, &null_args);
if (-EBACKENDNOTAVAIL == desc) {
fprintf (stderr, "Backend library not available!\n");
return;
}
assert(desc < 0);
assert(-EBACKENDNOTSUPP == desc);
desc = liberasurecode_instance_create(EC_BACKENDS_MAX, &null_args);
if (-EBACKENDNOTAVAIL == desc) {
fprintf (stderr, "Backend library not available!\n");
return;
}
assert(desc < 0);
assert(-EBACKENDNOTSUPP == desc);
desc = liberasurecode_instance_create(EC_BACKEND_NULL, NULL);
if (-EBACKENDNOTAVAIL == desc) {
fprintf (stderr, "Backend library not available!\n");
return;
}
assert(-EINVALIDPARAMS == desc);
struct ec_args invalid_args = {
.k = 100,
.m = 100,
};
desc = liberasurecode_instance_create(EC_BACKEND_NULL, &invalid_args);
if (-EBACKENDNOTAVAIL == desc) {
fprintf (stderr, "Backend library not available!\n");
return;
}
assert(desc < 0);
assert(-EINVALIDPARAMS == desc);
invalid_args.k = -1;
invalid_args.m = 4;
desc = liberasurecode_instance_create(EC_BACKEND_NULL, &invalid_args);
assert(-EINVALIDPARAMS == desc);
invalid_args.k = 10;
invalid_args.m = -1;
desc = liberasurecode_instance_create(EC_BACKEND_NULL, &invalid_args);
assert(-EINVALIDPARAMS == desc);
}
static void test_destroy_backend_invalid_args()