Skip to content
Snippets Groups Projects
Commit 04e38f62 authored by rswindell's avatar rswindell
Browse files

Now verifies header lengths match calculated header lengths.

parent 35fa4602
No related branches found
No related tags found
No related merge requests found
...@@ -130,7 +130,7 @@ int main(int argc, char **argv) ...@@ -130,7 +130,7 @@ int main(int argc, char **argv)
ulong l,m,n,length,size,total=0,orphan=0,deleted=0,headers=0 ulong l,m,n,length,size,total=0,orphan=0,deleted=0,headers=0
,*offset,*number,xlaterr ,*offset,*number,xlaterr
,delidx ,delidx
,delhdrblocks,deldatblocks,hdrerr=0,lockerr=0,hdrnumerr=0 ,delhdrblocks,deldatblocks,hdrerr=0,lockerr=0,hdrnumerr=0,hdrlenerr=0
,acthdrblocks,actdatblocks ,acthdrblocks,actdatblocks
,dfieldlength=0,dfieldoffset=0 ,dfieldlength=0,dfieldoffset=0
,dupenum=0,dupenumhdr=0,dupeoff=0,attr=0,actalloc=0 ,dupenum=0,dupenumhdr=0,dupeoff=0,attr=0,actalloc=0
...@@ -142,7 +142,7 @@ int main(int argc, char **argv) ...@@ -142,7 +142,7 @@ int main(int argc, char **argv)
idxrec_t idx; idxrec_t idx;
smbmsg_t msg; smbmsg_t msg;
fprintf(stderr,"\nCHKSMB v2.11 - Check Synchronet Message Base - " fprintf(stderr,"\nCHKSMB v2.12 - Check Synchronet Message Base - "
"Copyright 2002 Rob Swindell\n"); "Copyright 2002 Rob Swindell\n");
if(argc<2) { if(argc<2) {
...@@ -272,6 +272,15 @@ int main(int argc, char **argv) ...@@ -272,6 +272,15 @@ int main(int argc, char **argv)
strip_ctrl(msg.from); strip_ctrl(msg.from);
fprintf(stderr,"#%-5lu (%06lX) %-25.25s ",msg.hdr.number,l,msg.from); fprintf(stderr,"#%-5lu (%06lX) %-25.25s ",msg.hdr.number,l,msg.from);
if(msg.hdr.length!=smb_getmsghdrlen(&msg)) {
fprintf(stderr,"%sHeader length mismatch\n",beep);
msgerr=1;
if(extinfo)
printf("MSGERR: Header length (%hu) does not match calculcated length (%lu)\n"
,msg.hdr.length,smb_getmsghdrlen(&msg));
hdrlenerr++;
}
lzhmsg=0; lzhmsg=0;
if(msg.hdr.attr&MSG_DELETE) { if(msg.hdr.attr&MSG_DELETE) {
deleted++; deleted++;
...@@ -447,6 +456,8 @@ int main(int argc, char **argv) ...@@ -447,6 +456,8 @@ int main(int argc, char **argv)
,msg.hdr.version); ,msg.hdr.version);
printf("%-20s: %u\n","Length" printf("%-20s: %u\n","Length"
,msg.hdr.length); ,msg.hdr.length);
printf("%-20s: %u\n","Calculated Length"
,smb_getmsghdrlen(&msg));
printf("%-20s: %04hXh\n","Attributes" printf("%-20s: %04hXh\n","Attributes"
,msg.hdr.attr); ,msg.hdr.attr);
printf("%-20s: %08lXh\n","Auxilary Attributes" printf("%-20s: %08lXh\n","Auxilary Attributes"
...@@ -651,6 +662,10 @@ int main(int argc, char **argv) ...@@ -651,6 +662,10 @@ int main(int argc, char **argv)
printf("%-35.35s (!): %lu\n" printf("%-35.35s (!): %lu\n"
,"Out-Of-Range Header Numbers" ,"Out-Of-Range Header Numbers"
,hdrnumerr); ,hdrnumerr);
if(hdrlenerr)
printf("%-35.35s (!): %lu\n"
,"Mismatched Header Lengths"
,hdrlenerr);
if(attr) if(attr)
printf("%-35.35s (!): %lu\n" printf("%-35.35s (!): %lu\n"
,"Mismatched Header Attributes" ,"Mismatched Header Attributes"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment