From f0df57b92adaa7b98a3021d7da8e9569c2c148c6 Mon Sep 17 00:00:00 2001 From: Cekis Date: Fri, 4 Oct 2019 11:50:29 -0400 Subject: [PATCH] Fixed CRC calculation in Perl module to match server CRC calc --- tools/perllib/Crc.pm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/perllib/Crc.pm b/tools/perllib/Crc.pm index ce17a9b..ad479d3 100644 --- a/tools/perllib/Crc.pm +++ b/tools/perllib/Crc.pm @@ -72,15 +72,15 @@ sub calculate my $string = $_[0]; return 0 if ($string eq ""); - my $crc_init = hex("0xffffffff"); + my $crc_init = hex("0xffffffff") & 0xffffffff; my $crc = $crc_init; foreach (split(//, $string)) { - $crc = $crctable[(($crc>>24) ^ ord($_)) & 255] ^ ($crc << 8); + $crc = ($crctable[(($crc>>24) ^ ord($_)) & 255] ^ ($crc << 8) & 0xffffffff); } - - return $crc ^ $crc_init; + + return $crc ^ $crc_init & 0xffffffff; } # =====================================================================