Jerasure icon indicating copy to clipboard operation
Jerasure copied to clipboard

Encode using blaum_roth segmentation fault.

Open Zhonghui opened this issue 12 years ago • 0 comments

Encode using blaum_roth segmentation fault. k=10, m=4, w=16.

====my patch==== diff -u ../Jerasure-master-ori/Jerasure-master/Examples/decoder.c Examples/decoder.c --- ../Jerasure-master-ori/Jerasure-master/Examples/decoder.c 2011-11-27 07:24:10.000000000 +0800 +++ Examples/decoder.c 2013-02-04 10:54:34.375865798 +0800 @@ -229,7 +229,7 @@ bitmatrix = liberation_coding_bitmatrix(k, w); break; case Blaum_Roth:

  •       bitmatrix = blaum_roth_coding_bitmatrix(k, w);
    
  •       bitmatrix = blaum_roth_coding_bitmatrix(k, w, m);
        break;
    case Liber8tion:
        bitmatrix = liber8tion_coding_bitmatrix(k);
    
    diff -u ../Jerasure-master-ori/Jerasure-master/Examples/encoder.c Examples/encoder.c --- ../Jerasure-master-ori/Jerasure-master/Examples/encoder.c 2011-11-27 07:24:10.000000000 +0800 +++ Examples/encoder.c 2013-02-04 10:51:58.887225000 +0800 @@ -455,7 +455,7 @@ schedule = jerasure_smart_bitmatrix_to_schedule(k, m, w, bitmatrix); break; case Blaum_Roth:
  •       bitmatrix = blaum_roth_coding_bitmatrix(k, w);
    
  •       bitmatrix = blaum_roth_coding_bitmatrix(k, w, m);
        schedule = jerasure_smart_bitmatrix_to_schedule(k, m, w, bitmatrix);
        break;
    case Liber8tion:
    
    diff -u ../Jerasure-master-ori/Jerasure-master/src/liberation.c src/liberation.c --- ../Jerasure-master-ori/Jerasure-master/src/liberation.c 2011-11-27 07:24:10.000000000 +0800 +++ src/liberation.c 2013-02-04 10:53:04.594043000 +0800 @@ -208,15 +208,15 @@ return matrix; }

-int *blaum_roth_coding_bitmatrix(int k, int w) +int *blaum_roth_coding_bitmatrix(int k, int w, int m0) { int *matrix, i, j, index, l, m, p;

if (k > w) return NULL ;

  • matrix = talloc(int, 2_k_w*w);
  • matrix = talloc(int, m0_k_w*w); if (matrix == NULL) return NULL;
  • bzero(matrix, sizeof(int)_2_k_w_w);
  • bzero(matrix, sizeof(int)_m0_k_w_w);

/* Set up identity matrices */

diff -u ../Jerasure-master-ori/Jerasure-master/src/liberation.h src/liberation.h --- ../Jerasure-master-ori/Jerasure-master/src/liberation.h 2011-11-27 07:24:10.000000000 +0800 +++ src/liberation.h 2013-02-04 10:54:03.603866097 +0800 @@ -51,6 +51,6 @@

extern int *liberation_coding_bitmatrix(int k, int w); extern int *liber8tion_coding_bitmatrix(int k); -extern int *blaum_roth_coding_bitmatrix(int k, int w); +extern int *blaum_roth_coding_bitmatrix(int k, int w, int m0);

#endif

Zhonghui avatar Feb 04 '13 08:02 Zhonghui