diff --git a/src/sbbs3/chksmb.c b/src/sbbs3/chksmb.c index 099c7d87176ab51c9051d68d160a7c916f3b5f25..9bd45a3b04cb07076398019708ccd1b79afd1893 100644 --- a/src/sbbs3/chksmb.c +++ b/src/sbbs3/chksmb.c @@ -133,7 +133,7 @@ int main(int argc, char **argv) ,acthdrblocks,actdatblocks ,dfieldlength,dfieldoffset ,dupenum,dupenumhdr,dupeoff,attr,actalloc - ,datactalloc,misnumbered,timeerr,idxofferr,idxerr + ,datactalloc,misnumbered,timeerr,idxofferr,idxerr,subjcrc ,zeronum,idxzeronum,idxnumerr,packable=0L,totallzhsaved=0L ,totalmsgs=0,totallzhmsgs=0,totaldelmsgs=0,totalmsgbytes=0L ,lzhblocks,lzhsaved; @@ -257,6 +257,7 @@ int main(int argc, char **argv) } headers=deleted=orphan=dupenumhdr=attr=zeronum=timeerr=lockerr=hdrerr=0; + subjcrc=0; hdrnumerr=hdrlenerr=0; actalloc=datactalloc=deldatblocks=delhdrblocks=xlaterr=0; lzhblocks=lzhsaved=acthdrblocks=actdatblocks=0; @@ -417,6 +418,15 @@ int main(int argc, char **argv) "index import date/time\n"); timeerr++; } + else if(msg.idx.subj!=smb_subject_crc(msg.subj)) { + fprintf(stderr,"%sSubject CRC mismatch index\n",beep); + msgerr=TRUE; + if(extinfo) + printf("MSGERR: Subject (%04X) does not match index " + "CRC (%04X)\n" + ,smb_subject_crc(msg.subj),msg.idx.subj); + subjcrc++; + } if(msg.hdr.number==0) { fprintf(stderr,"%sZero message number\n",beep); msgerr=TRUE; @@ -767,6 +777,10 @@ int main(int argc, char **argv) printf("%-35.35s (!): %lu\n" ,"Mismatched Header Import Time" ,timeerr); + if(subjcrc) + printf("%-35.35s (!): %lu\n" + ,"Mismatched Subject CRCs" + ,subjcrc); if(getbodyerr) printf("%-35.35s (!): %lu\n" ,"Message Body Text Read Failures" @@ -818,7 +832,7 @@ int main(int argc, char **argv) || getbodyerr || gettailerr || orphan || dupenumhdr || dupenum || dupeoff || attr || lockerr || hdrerr || hdrnumerr || idxnumerr || idxofferr - || actalloc || datactalloc || misnumbered || timeerr + || actalloc || datactalloc || misnumbered || timeerr || subjcrc || dfieldoffset || dfieldlength || xlaterr || idxerr) { printf("%shas Errors!\n",beep); errors++;