Skip to content
Snippets Groups Projects
Commit 5d1bcafa authored by rswindell's avatar rswindell
Browse files

Verify to/from crc/extension fields in index match values from header.

parent e0dc2182
No related branches found
No related tags found
No related merge requests found
......@@ -133,7 +133,8 @@ int main(int argc, char **argv)
,acthdrblocks,actdatblocks
,dfieldlength,dfieldoffset
,dupenum,dupenumhdr,dupeoff,attr,actalloc
,datactalloc,misnumbered,timeerr,idxofferr,idxerr,subjcrc
,datactalloc,misnumbered,timeerr,idxofferr,idxerr
,subjcrc,fromcrc,tocrc
,zeronum,idxzeronum,idxnumerr,packable=0L,totallzhsaved=0L
,totalmsgs=0,totallzhmsgs=0,totaldelmsgs=0,totalmsgbytes=0L
,lzhblocks,lzhsaved;
......@@ -257,7 +258,7 @@ int main(int argc, char **argv)
}
headers=deleted=orphan=dupenumhdr=attr=zeronum=timeerr=lockerr=hdrerr=0;
subjcrc=0;
subjcrc=fromcrc=tocrc=0;
hdrnumerr=hdrlenerr=0;
actalloc=datactalloc=deldatblocks=delhdrblocks=xlaterr=0;
lzhblocks=lzhsaved=acthdrblocks=actdatblocks=0;
......@@ -427,6 +428,46 @@ int main(int argc, char **argv)
,smb_subject_crc(msg.subj),msg.idx.subj);
subjcrc++;
}
else if(smb.status.attr&SMB_EMAIL
&& msg.from_ext && msg.idx.from!=atoi(msg.from_ext)) {
fprintf(stderr,"%sFrom extension mismatch index\n",beep);
msgerr=TRUE;
if(extinfo)
printf("MSGERR: From extension (%s) does not match index "
"(%u)\n"
,msg.from_ext,msg.idx.from);
fromcrc++;
}
else if(!(smb.status.attr&SMB_EMAIL)
&& msg.idx.from!=smb_name_crc(msg.from)) {
fprintf(stderr,"%sFrom CRC mismatch index\n",beep);
msgerr=TRUE;
if(extinfo)
printf("MSGERR: From (%04X) does not match index "
"CRC (%04X)\n"
,smb_name_crc(msg.from),msg.idx.from);
fromcrc++;
}
else if(smb.status.attr&SMB_EMAIL
&& msg.to_ext && msg.idx.from!=atoi(msg.to_ext)) {
fprintf(stderr,"%sTo extension mismatch index\n",beep);
msgerr=TRUE;
if(extinfo)
printf("MSGERR: To extension (%s) does not match index "
"(%u)\n"
,msg.to_ext,msg.idx.to);
tocrc++;
}
else if(!(smb.status.attr&SMB_EMAIL)
&& msg.to_ext==NULL && msg.idx.to!=smb_name_crc(msg.to)) {
fprintf(stderr,"%sTo CRC mismatch index\n",beep);
msgerr=TRUE;
if(extinfo)
printf("MSGERR: To (%04X) does not match index "
"CRC (%04X)\n"
,smb_name_crc(msg.to),msg.idx.to);
tocrc++;
}
if(msg.hdr.number==0) {
fprintf(stderr,"%sZero message number\n",beep);
msgerr=TRUE;
......@@ -781,6 +822,14 @@ int main(int argc, char **argv)
printf("%-35.35s (!): %lu\n"
,"Mismatched Subject CRCs"
,subjcrc);
if(fromcrc)
printf("%-35.35s (!): %lu\n"
,smb.status.attr&SMB_EMAIL ? "Mismatched From Extensions" : "Mismatched From CRCs"
,fromcrc);
if(tocrc)
printf("%-35.35s (!): %lu\n"
,smb.status.attr&SMB_EMAIL ? "Mismatched To Extensions" : "Mismatched To CRCs"
,tocrc);
if(getbodyerr)
printf("%-35.35s (!): %lu\n"
,"Message Body Text Read Failures"
......@@ -832,7 +881,8 @@ int main(int argc, char **argv)
|| getbodyerr || gettailerr
|| orphan || dupenumhdr || dupenum || dupeoff || attr
|| lockerr || hdrerr || hdrnumerr || idxnumerr || idxofferr
|| actalloc || datactalloc || misnumbered || timeerr || subjcrc
|| actalloc || datactalloc || misnumbered || timeerr
|| subjcrc || fromcrc || tocrc
|| dfieldoffset || dfieldlength || xlaterr || idxerr) {
printf("%shas Errors!\n",beep);
errors++;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment