Hello community, here is the log from the commit of package bird for openSUSE:Factory checked in at 2020-11-17 21:26:41 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/bird (Old) and /work/SRC/openSUSE:Factory/.bird.new.24930 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "bird" Tue Nov 17 21:26:41 2020 rev:7 rq:848952 version:2.0.7 Changes: -------- --- /work/SRC/openSUSE:Factory/bird/bird.changes 2020-09-27 11:50:49.088110778 +0200 +++ /work/SRC/openSUSE:Factory/.bird.new.24930/bird.changes 2020-11-17 21:26:41.977461950 +0100 @@ -1,0 +2,6 @@ +Mon Nov 16 12:45:29 UTC 2020 - Mark Stopka <[email protected]> + +- Add patch to fix test on Big Endian architectures + * fix_test_for_bigendian_arch.patch + +------------------------------------------------------------------- New: ---- fix_test_for_bigendian_arch.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ bird.spec ++++++ --- /var/tmp/diff_new_pack.KxP6RY/_old 2020-11-17 21:26:42.653462598 +0100 +++ /var/tmp/diff_new_pack.KxP6RY/_new 2020-11-17 21:26:42.657462601 +0100 @@ -31,6 +31,7 @@ Source1: bird.service Source3: bird.tmpfiles.d Patch0: gcc10.patch +Patch1: fix_test_for_bigendian_arch.patch BuildRequires: bison BuildRequires: flex BuildRequires: ncurses-devel @@ -66,6 +67,7 @@ %prep %setup -q %patch0 -p1 +%patch1 -p1 %build export CFLAGS="${RPM_OPT_FLAGS} -fpic -DPIC -fno-strict-aliasing -Wno-parentheses -Wno-pointer-sign" ++++++ fix_test_for_bigendian_arch.patch ++++++ diff --git a/lib/fletcher16_test.c b/lib/fletcher16_test.c index 1020e6ecc8cac116dd45710ff7993f2e8641d694..3cd4c302f19700d32b0d3e68d5137b4409bfe976 100644 --- a/lib/fletcher16_test.c +++ b/lib/fletcher16_test.c @@ -24,24 +24,33 @@ straightforward_fletcher16_compute(const char *data) sum2 = (sum2 + sum1) % 255; } - return (sum2 << 8) | sum1; + sum2 = (sum2 + sum1) % 255; + sum2 = (sum2 + sum1) % 255; + + return (sum1 << 8) | sum2; } static u16 straightforward_fletcher16_checksum(const char *data) { u16 csum; - u8 c0,c1,f0,f1; + u16 c0,c1,x,y; csum = straightforward_fletcher16_compute(data); - f0 = csum & 0xff; - f1 = (csum >> 8) & 0xff; - c0 = 0xff - ((f0 + f1) % 0xff); - c1 = 0xff - ((f0 + c0) % 0xff); + c0 = (csum >> 8) & 0xff; + c1 = csum & 0xff; + + x = (255 + c0 - c1) % 255; + y = (510 - 2*c0 + c1) % 255; - return (c1 << 8) | c0; + if (!x) x = 255; + if (!y) y = 255; + + return (x << 8) | y; } +const u8 zero16[2] = {}; + static int test_fletcher16(void *out_, const void *in_, const void *expected_out_) { @@ -53,7 +62,8 @@ test_fletcher16(void *out_, const void *in_, const void *expected_out_) fletcher16_init(&ctxt); fletcher16_update(&ctxt, in, strlen(in)); - put_u16(out, fletcher16_compute(&ctxt)); + fletcher16_update(&ctxt, zero16, 2); + *out = fletcher16_compute(&ctxt); return *out == *expected_out; } @@ -70,7 +80,8 @@ test_fletcher16_checksum(void *out_, const void *in_, const void *expected_out_) fletcher16_init(&ctxt); fletcher16_update(&ctxt, in, len); - put_u16(out, fletcher16_final(&ctxt, len, len)); + fletcher16_update(&ctxt, zero16, 2); + *out = fletcher16_final(&ctxt, len+2, len); return *out == *expected_out; } @@ -81,7 +92,7 @@ t_fletcher16_compute(void) struct bt_pair test_vectors[] = { { .in = "\001\002", - .out = & (const u16) { 0x0403 }, + .out = & ((const u16) { straightforward_fletcher16_compute("\001\002") }), }, { .in = "", _______________________________________________ openSUSE Commits mailing list -- [email protected] To unsubscribe, email [email protected] List Netiquette: https://en.opensuse.org/openSUSE:Mailing_list_netiquette List Archives: https://lists.opensuse.org/archives/list/[email protected]
