Browse code

use different field order for .mdb files

git-svn: trunk@2394

Tomasz Kojm authored on 2006/10/16 08:14:42
Showing 2 changed files
... ...
@@ -1,3 +1,8 @@
1
+Mon Oct 16 01:12:36 CEST 2006 (tk)
2
+----------------------------------
3
+  * libclamav/readdb.c: use different field order for .mdb files
4
+			(requested by signature maintainers)
5
+
1 6
 Sun Oct 15 21:15:58 CEST 2006 (tk)
2 7
 ----------------------------------
3 8
   * libclamav: allow loading multiple .pdb/.wdb files (Edwin)
... ...
@@ -812,6 +812,7 @@ static int cli_loadhdb(FILE *fd, struct cl_engine **engine, unsigned int *signo,
812 812
 {
813 813
 	char buffer[FILEBUFF], *pt;
814 814
 	int line = 0, ret = 0;
815
+	unsigned int md5f = 0, sizef = 1;
815 816
 	struct cli_md5_node *new, *mpt, *last;
816 817
 
817 818
 
... ...
@@ -820,6 +821,11 @@ static int cli_loadhdb(FILE *fd, struct cl_engine **engine, unsigned int *signo,
820 820
 	return ret;
821 821
     }
822 822
 
823
+    if(mode == 2) {
824
+	md5f = 1;
825
+	sizef = 0;
826
+    }
827
+
823 828
     while(fgets(buffer, FILEBUFF, fd)) {
824 829
 	line++;
825 830
 	cli_chomp(buffer);
... ...
@@ -833,7 +839,7 @@ static int cli_loadhdb(FILE *fd, struct cl_engine **engine, unsigned int *signo,
833 833
 	if(mode == 1) /* fp */
834 834
 	    new->fp = 1;
835 835
 
836
-	if(!(pt = cli_strtok(buffer, 0, ":"))) {
836
+	if(!(pt = cli_strtok(buffer, md5f, ":"))) {
837 837
 	    free(new);
838 838
 	    ret = CL_EMALFDB;
839 839
 	    break;
... ...
@@ -848,7 +854,7 @@ static int cli_loadhdb(FILE *fd, struct cl_engine **engine, unsigned int *signo,
848 848
 	}
849 849
 	free(pt);
850 850
 
851
-	if(!(pt = cli_strtok(buffer, 1, ":"))) {
851
+	if(!(pt = cli_strtok(buffer, sizef, ":"))) {
852 852
 	    free(new->md5);
853 853
 	    free(new);
854 854
 	    ret = CL_EMALFDB;