mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-16 14:58:25 +00:00
callerid: Logic error in checksum processing
Callerid checksum-ing was being handled incorrectly here. When the checksum is calculated to be 0x00, it will perform 0x100-0x00 which results in 0x100. This value will then fail the otherwise correct callerid message. This patch changes the logic to simply add the calculated checksum to the transmitted 2's compliment checksum. Review: https://reviewboard.asterisk.org/r/3356/ (closes issue ASTERISK-23488) ........ Merged revisions 410710 from http://svn.asterisk.org/svn/asterisk/branches/1.8 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/11@410717 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -621,7 +621,7 @@ int callerid_feed(struct callerid_state *cid, unsigned char *ubuf, int len, stru
|
||||
}
|
||||
break;
|
||||
case 5: /* Check checksum */
|
||||
if (b != (256 - (cid->cksum & 0xff))) {
|
||||
if ((b + cid->cksum) & 0xff)) {
|
||||
ast_log(LOG_NOTICE, "Caller*ID failed checksum\n");
|
||||
/* Try again */
|
||||
cid->sawflag = 0;
|
||||
|
||||
Reference in New Issue
Block a user