summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backends/isa-l/isa_l_rs_vand.c10
-rw-r--r--src/erasurecode.c7
2 files changed, 13 insertions, 4 deletions
diff --git a/src/backends/isa-l/isa_l_rs_vand.c b/src/backends/isa-l/isa_l_rs_vand.c
index d2f740f..ebce441 100644
--- a/src/backends/isa-l/isa_l_rs_vand.c
+++ b/src/backends/isa-l/isa_l_rs_vand.c
@@ -261,7 +261,10 @@ static int isa_l_rs_vand_decode(void *desc, char **data, char **parity,
goto out;
}
- isa_l_desc->gf_invert_matrix(decode_matrix, decode_inverse, k);
+ int im_ret = isa_l_desc->gf_invert_matrix(decode_matrix, decode_inverse, k);
+ if (im_ret < 0) {
+ goto out;
+ }
// Generate g_tbls from computed decode matrix (k x k) matrix
g_tbls = malloc(sizeof(unsigned char) * (k * m * 32));
@@ -365,7 +368,10 @@ static int isa_l_rs_vand_reconstruct(void *desc, char **data, char **parity,
goto out;
}
- isa_l_desc->gf_invert_matrix(decode_matrix, decode_inverse, k);
+ int im_ret = isa_l_desc->gf_invert_matrix(decode_matrix, decode_inverse, k);
+ if (im_ret < 0) {
+ goto out;
+ }
/**
* Get the row needed to reconstruct
diff --git a/src/erasurecode.c b/src/erasurecode.c
index 540cc26..fdae72a 100644
--- a/src/erasurecode.c
+++ b/src/erasurecode.c
@@ -331,7 +331,7 @@ int liberasurecode_instance_destroy(int desc)
/* dlclose() backend library */
liberasurecode_backend_close(instance);
- /* Remove instace from registry */
+ /* Remove instance from registry */
rc = liberasurecode_backend_instance_unregister(instance);
if (rc == 0) {
free(instance);
@@ -1075,6 +1075,9 @@ int is_invalid_fragment_header(fragment_header_t *header)
{
uint32_t *stored_csum = NULL, csum = 0;
assert (NULL != header);
+ if (header->libec_version == 0)
+ /* libec_version must be bigger than 0 */
+ return 1;
if (header->libec_version < _VERSION(1,2,0))
/* no metadata checksum support */
return 0;
@@ -1090,7 +1093,7 @@ int liberasurecode_verify_fragment_metadata(ec_backend_t be,
{
int k = be->args.uargs.k;
int m = be->args.uargs.m;
- if (md->idx < 0 || (md->idx > (k + m))) {
+ if (md->idx > (k + m)) {
return 1;
}
if (md->backend_id != be->common.id) {