Blame SOURCES/liberasurecode-1.6.1-fragswarn.patch

rdobuilder e85f25
commit 4568188d77815697419c8d0b2c55bcbba7f65929
rdobuilder e85f25
Author: Pete Zaitcev <zaitcev@kotori.zaitcev.us>
rdobuilder e85f25
Date:   Wed Feb 5 23:26:31 2020 -0600
rdobuilder e85f25
rdobuilder e85f25
    Do not discard a technical return value in tests
rdobuilder e85f25
    
rdobuilder e85f25
    Compilers are getting smarter, and we started getting this:
rdobuilder e85f25
    
rdobuilder e85f25
    libec_slap.c: In function 'test_hd_code':
rdobuilder e85f25
    libec_slap.c:285:14: error: 'frags.array' may be used uninitialized
rdobuilder e85f25
     in this function [-Werror=maybe-uninitialized]
rdobuilder e85f25
    
rdobuilder e85f25
    The fix is to consume the error code in such a way that the
rdobuilder e85f25
    test proceeds further only when frags are indeed initialized.
rdobuilder e85f25
    
rdobuilder e85f25
    Change-Id: I54db0172a36419206d00b22608523a08818f41f6
rdobuilder e85f25
rdobuilder e85f25
diff --git a/test/libec_slap.c b/test/libec_slap.c
rdobuilder e85f25
index 78d34a2..5d029ea 100644
rdobuilder e85f25
--- a/test/libec_slap.c
rdobuilder e85f25
+++ b/test/libec_slap.c
rdobuilder e85f25
@@ -280,8 +280,12 @@ static int test_hd_code(struct ec_args *args,
rdobuilder e85f25
             }
rdobuilder e85f25
             j++;
rdobuilder e85f25
         }
rdobuilder e85f25
-        create_frags_array_set(&frags,encoded_data, args->k, encoded_parity,
rdobuilder e85f25
-                               args->m, mask);
rdobuilder e85f25
+        rc = create_frags_array_set(&frags, encoded_data, args->k, 
rdobuilder e85f25
+                                    encoded_parity, args->m, mask);
rdobuilder e85f25
+        if (rc) {
rdobuilder e85f25
+            fprintf(stderr, "No core\n");
rdobuilder e85f25
+            exit(2);
rdobuilder e85f25
+        }
rdobuilder e85f25
         rc = liberasurecode_decode(desc, frags.array, frags.num_fragments,
rdobuilder e85f25
                                    encoded_fragment_len, 1,
rdobuilder e85f25
                                    &out_data, &out_data_len);
rdobuilder e85f25
@@ -305,8 +309,12 @@ static int test_hd_code(struct ec_args *args,
rdobuilder e85f25
             mi = mi + 1 % (args->k + args->m);
rdobuilder e85f25
             mask = add_item_to_missing_mask(mask, mi);
rdobuilder e85f25
         }
rdobuilder e85f25
-        create_frags_array_set(&frags,encoded_data, args->k, encoded_parity,
rdobuilder e85f25
-                               args->m, mask);
rdobuilder e85f25
+        rc = create_frags_array_set(&frags, encoded_data, args->k,
rdobuilder e85f25
+                                    encoded_parity, args->m, mask);
rdobuilder e85f25
+        if (rc) {
rdobuilder e85f25
+            fprintf(stderr, "No core\n");
rdobuilder e85f25
+            exit(2);
rdobuilder e85f25
+        }
rdobuilder e85f25
         rc = liberasurecode_decode(desc, frags.array, frags.num_fragments,
rdobuilder e85f25
                                    encoded_fragment_len, 1,
rdobuilder e85f25
                                    &out_data, &out_data_len);