This patch change invalid argument of ec_decode_buffer()
from block_size_shift to object_size.

Signed-off-by: Teruaki Ishizaki <ishizaki.teru...@lab.ntt.co.jp>
---
 dog/vdi.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/dog/vdi.c b/dog/vdi.c
index f1ebd45..15a382a 100644
--- a/dog/vdi.c
+++ b/dog/vdi.c
@@ -1973,6 +1973,7 @@ static void check_erasure_object(struct vdi_check_info 
*info)
        struct fec *ctx = ec_init(d, dp);
        int miss_idx[dp], input_idx[dp];
        uint64_t oid = info->oid;
+       uint32_t object_size = (UINT32_C(1) << info->block_size_shift);
        size_t len = get_store_objsize(info->copy_policy,
                                       info->block_size_shift, oid);
        char *obj = xmalloc(len);
@@ -2001,7 +2002,7 @@ static void check_erasure_object(struct vdi_check_info 
*info)
                        for (j = 0; j < d; j++)
                                ds[j] = info->vcw[j].buf;
                        ec_decode_buffer(ctx, ds, idx, obj, d + k,
-                                        info->block_size_shift);
+                                        object_size);
                        if (memcmp(obj, info->vcw[d + k].buf, len) != 0) {
                                /* TODO repair the inconsistency */
                                sd_err("object %"PRIx64" is inconsistent", oid);
@@ -2020,7 +2021,7 @@ static void check_erasure_object(struct vdi_check_info 
*info)
                        for (i = 0; i < d; i++)
                                ds[i] = input[i];
                        ec_decode_buffer(ctx, ds, input_idx, obj, m,
-                                        info->block_size_shift);
+                                        object_size);
                        write_object_to(info->vcw[m].vnode, oid, obj,
                                        len, true, info->vcw[m].ec_index);
                        fprintf(stdout, "fixed missing %"PRIx64", "
-- 
1.7.1

-- 
sheepdog mailing list
sheepdog@lists.wpkg.org
https://lists.wpkg.org/mailman/listinfo/sheepdog

Reply via email to