From e85f25a650d080ba5bc4bfece0d460c37e7c7cae Mon Sep 17 00:00:00 2001 From: rdobuilder Date: Nov 08 2024 10:36:26 +0000 Subject: Update to 1.6.2 Related-to: https://review.rdoproject.org/r/q/I42ed874755f612fe726eaafa781f0506d73305b5 --- diff --git a/.liberasurecode.metadata b/.liberasurecode.metadata index 61b558d..e69de29 100644 --- a/.liberasurecode.metadata +++ b/.liberasurecode.metadata @@ -1 +0,0 @@ -11d6673b5ac2f7ab5c2ef58123f1ce62254a794c SOURCES/liberasurecode-1.6.2.tar.gz diff --git a/SOURCES/liberasurecode-1.6.1-fragswarn.patch b/SOURCES/liberasurecode-1.6.1-fragswarn.patch new file mode 100644 index 0000000..3bdba5e --- /dev/null +++ b/SOURCES/liberasurecode-1.6.1-fragswarn.patch @@ -0,0 +1,51 @@ +commit 4568188d77815697419c8d0b2c55bcbba7f65929 +Author: Pete Zaitcev +Date: Wed Feb 5 23:26:31 2020 -0600 + + Do not discard a technical return value in tests + + Compilers are getting smarter, and we started getting this: + + libec_slap.c: In function 'test_hd_code': + libec_slap.c:285:14: error: 'frags.array' may be used uninitialized + in this function [-Werror=maybe-uninitialized] + + The fix is to consume the error code in such a way that the + test proceeds further only when frags are indeed initialized. + + Change-Id: I54db0172a36419206d00b22608523a08818f41f6 + +diff --git a/test/libec_slap.c b/test/libec_slap.c +index 78d34a2..5d029ea 100644 +--- a/test/libec_slap.c ++++ b/test/libec_slap.c +@@ -280,8 +280,12 @@ static int test_hd_code(struct ec_args *args, + } + j++; + } +- create_frags_array_set(&frags,encoded_data, args->k, encoded_parity, +- args->m, mask); ++ rc = create_frags_array_set(&frags, encoded_data, args->k, ++ encoded_parity, args->m, mask); ++ if (rc) { ++ fprintf(stderr, "No core\n"); ++ exit(2); ++ } + rc = liberasurecode_decode(desc, frags.array, frags.num_fragments, + encoded_fragment_len, 1, + &out_data, &out_data_len); +@@ -305,8 +309,12 @@ static int test_hd_code(struct ec_args *args, + mi = mi + 1 % (args->k + args->m); + mask = add_item_to_missing_mask(mask, mi); + } +- create_frags_array_set(&frags,encoded_data, args->k, encoded_parity, +- args->m, mask); ++ rc = create_frags_array_set(&frags, encoded_data, args->k, ++ encoded_parity, args->m, mask); ++ if (rc) { ++ fprintf(stderr, "No core\n"); ++ exit(2); ++ } + rc = liberasurecode_decode(desc, frags.array, frags.num_fragments, + encoded_fragment_len, 1, + &out_data, &out_data_len); diff --git a/SOURCES/liberasurecode-1.6.1-nostrncpy.patch b/SOURCES/liberasurecode-1.6.1-nostrncpy.patch new file mode 100644 index 0000000..c13ce31 --- /dev/null +++ b/SOURCES/liberasurecode-1.6.1-nostrncpy.patch @@ -0,0 +1,64 @@ +commit 0eb6cd321e312e32b3ad12c34089466eae60cd88 +Author: Corey Bryant +Date: Tue Jan 14 15:47:44 2020 -0500 + + Fix create_fake_frags_no_meta to use memset to fill frags + + These aren't C strings; we shouldn't be using strncpy and friends. + + Change-Id: I50cd7922dfa377ea27f3c9558a8a7268120ec733 + Closes-Bug: #1859710 + +diff --git a/test/liberasurecode_test.c b/test/liberasurecode_test.c +index d3ca200..e60140f 100644 +--- a/test/liberasurecode_test.c ++++ b/test/liberasurecode_test.c +@@ -385,8 +385,8 @@ int *create_skips_array(struct ec_args *args, int skip) + return buf; + } + +-static int create_fake_frags_no_meta(char ***array, int num_frags, +- const char *data, int data_len) ++inline static int create_fake_frags_no_meta(char ***array, int num_frags, ++ const char data, int data_len) + { + // N.B. The difference from creat_frags_arry is to creat new + // memory allocation and set a copy of data/parity there. The +@@ -404,8 +404,7 @@ static int create_fake_frags_no_meta(char ***array, int num_frags, + // add data and parity frags + ptr = *array; + for (i = 0; i < num_frags; i++) { +- *ptr = (char *) malloc(data_len); +- strncpy(*ptr++, data, data_len); ++ *ptr++ = create_buffer(data_len, data); + _num_frags++; + } + +@@ -660,7 +659,6 @@ static void test_decode_invalid_args() + // fake_data len should be bigger than fragment_header_t for + // the verifications + int fake_data_len = 1024; +- char *fake_data = create_buffer(fake_data_len, 'y'); + + desc = liberasurecode_instance_create(EC_BACKEND_NULL, &null_args); + if (-EBACKENDNOTAVAIL == desc) { +@@ -672,9 +670,8 @@ static void test_decode_invalid_args() + // test with invalid fragments (no metadata headers) + num_avail_frags = create_fake_frags_no_meta(&avail_frags, (null_args.k + + null_args.m), +- fake_data, fake_data_len); ++ 'y', fake_data_len); + assert(num_avail_frags > 0); +- free(fake_data); + + rc = liberasurecode_decode(desc, avail_frags, num_avail_frags, + fake_data_len, 1, +@@ -697,7 +694,7 @@ static void test_decode_invalid_args() + + // test with num_fragments < (k) + num_avail_frags = create_fake_frags_no_meta(&avail_frags, (null_args.k - 1), +- " ", 1); ++ ' ', 1); + assert(num_avail_frags > 0); + rc = liberasurecode_decode(desc, avail_frags, num_avail_frags, + fake_data_len, 1, diff --git a/SOURCES/liberasurecode-1.6.2.tar.gz b/SOURCES/liberasurecode-1.6.2.tar.gz new file mode 100644 index 0000000..10fa7b2 Binary files /dev/null and b/SOURCES/liberasurecode-1.6.2.tar.gz differ