Browse code

cache fixes

aCaB authored on 2010/01/05 23:27:36
Showing 6 changed files
... ...
@@ -306,7 +306,7 @@ int main(int argc, char **argv)
306 306
 	break;
307 307
     }
308 308
 
309
-    cache_init(256);
309
+    cl_cache_init(256);
310 310
 
311 311
     if(!(engine = cl_engine_new())) {
312 312
 	logg("!Can't initialize antivirus engine\n");
... ...
@@ -144,7 +144,7 @@ int main(int argc, char **argv)
144 144
 
145 145
     gettimeofday(&t1, NULL);
146 146
 
147
-    cache_init(256);
147
+    cl_cache_init(256);
148 148
 
149 149
     ret = scanmanager(opts);
150 150
 
... ...
@@ -345,7 +345,7 @@ libclamav_la_SOURCES = \
345 345
 	bytecode_api_decl.c \
346 346
 	bytecode_api.h \
347 347
 	bytecode_api_impl.h \
348
-	bytecode_hooks.h
348
+	bytecode_hooks.h \
349 349
 	cache.c \
350 350
 	cache.h
351 351
 
... ...
@@ -153,7 +153,8 @@ am__libclamav_la_SOURCES_DIST = clamav.h matcher-ac.c matcher-ac.h \
153 153
 	bytecode_vm.c bytecode_priv.h clambc.h cpio.c cpio.h macho.c \
154 154
 	macho.h ishield.c ishield.h type_desc.h bcfeatures.h \
155 155
 	bytecode_api.c bytecode_api_decl.c bytecode_api.h \
156
-	bytecode_api_impl.h bytecode_hooks.h bignum.c bignum_class.h
156
+	bytecode_api_impl.h bytecode_hooks.h cache.c cache.h bignum.c \
157
+	bignum_class.h
157 158
 @LINK_TOMMATH_FALSE@am__objects_1 = libclamav_la-bignum.lo
158 159
 am_libclamav_la_OBJECTS = libclamav_la-matcher-ac.lo \
159 160
 	libclamav_la-matcher-bm.lo libclamav_la-matcher.lo \
... ...
@@ -202,7 +203,8 @@ am_libclamav_la_OBJECTS = libclamav_la-matcher-ac.lo \
202 202
 	libclamav_la-bytecode.lo libclamav_la-bytecode_vm.lo \
203 203
 	libclamav_la-cpio.lo libclamav_la-macho.lo \
204 204
 	libclamav_la-ishield.lo libclamav_la-bytecode_api.lo \
205
-	libclamav_la-bytecode_api_decl.lo $(am__objects_1)
205
+	libclamav_la-bytecode_api_decl.lo libclamav_la-cache.lo \
206
+	$(am__objects_1)
206 207
 libclamav_la_OBJECTS = $(am_libclamav_la_OBJECTS)
207 208
 AM_V_lt = $(am__v_lt_$(V))
208 209
 am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
... ...
@@ -649,7 +651,8 @@ libclamav_la_SOURCES = clamav.h matcher-ac.c matcher-ac.h matcher-bm.c \
649 649
 	bytecode_vm.c bytecode_priv.h clambc.h cpio.c cpio.h macho.c \
650 650
 	macho.h ishield.c ishield.h type_desc.h bcfeatures.h \
651 651
 	bytecode_api.c bytecode_api_decl.c bytecode_api.h \
652
-	bytecode_api_impl.h bytecode_hooks.h $(am__append_7)
652
+	bytecode_api_impl.h bytecode_hooks.h cache.c cache.h \
653
+	$(am__append_7)
653 654
 noinst_LTLIBRARIES = libclamav_internal_utils.la libclamav_internal_utils_nothreads.la libclamav_nocxx.la
654 655
 COMMON_CLEANFILES = version.h version.h.tmp *.gcda *.gcno
655 656
 @MAINTAINER_MODE_TRUE@BUILT_SOURCES = jsparse/generated/operators.h jsparse/generated/keywords.h jsparse-keywords.gperf
... ...
@@ -795,6 +798,7 @@ distclean-compile:
795 795
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libclamav_la-bytecode_vm.Plo@am__quote@
796 796
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libclamav_la-bzlib.Plo@am__quote@
797 797
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libclamav_la-cab.Plo@am__quote@
798
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libclamav_la-cache.Plo@am__quote@
798 799
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libclamav_la-chmunpack.Plo@am__quote@
799 800
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libclamav_la-cpio.Plo@am__quote@
800 801
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libclamav_la-cvd.Plo@am__quote@
... ...
@@ -1659,6 +1663,14 @@ libclamav_la-bytecode_api_decl.lo: bytecode_api_decl.c
1659 1659
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1660 1660
 @am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libclamav_la_CFLAGS) $(CFLAGS) -c -o libclamav_la-bytecode_api_decl.lo `test -f 'bytecode_api_decl.c' || echo '$(srcdir)/'`bytecode_api_decl.c
1661 1661
 
1662
+libclamav_la-cache.lo: cache.c
1663
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libclamav_la_CFLAGS) $(CFLAGS) -MT libclamav_la-cache.lo -MD -MP -MF $(DEPDIR)/libclamav_la-cache.Tpo -c -o libclamav_la-cache.lo `test -f 'cache.c' || echo '$(srcdir)/'`cache.c
1664
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libclamav_la-cache.Tpo $(DEPDIR)/libclamav_la-cache.Plo
1665
+@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1666
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='cache.c' object='libclamav_la-cache.lo' libtool=yes @AMDEPBACKSLASH@
1667
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1668
+@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libclamav_la_CFLAGS) $(CFLAGS) -c -o libclamav_la-cache.lo `test -f 'cache.c' || echo '$(srcdir)/'`cache.c
1669
+
1662 1670
 libclamav_la-bignum.lo: bignum.c
1663 1671
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libclamav_la_CFLAGS) $(CFLAGS) -MT libclamav_la-bignum.lo -MD -MP -MF $(DEPDIR)/libclamav_la-bignum.Tpo -c -o libclamav_la-bignum.lo `test -f 'bignum.c' || echo '$(srcdir)/'`bignum.c
1664 1672
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libclamav_la-bignum.Tpo $(DEPDIR)/libclamav_la-bignum.Plo
... ...
@@ -2231,8 +2243,6 @@ uninstall-am: uninstall-includeHEADERS uninstall-libLTLIBRARIES
2231 2231
 	tags tags-recursive uninstall uninstall-am \
2232 2232
 	uninstall-includeHEADERS uninstall-libLTLIBRARIES
2233 2233
 
2234
-	cache.c \
2235
-	cache.h
2236 2234
 
2237 2235
 .PHONY: version.h.tmp
2238 2236
 version.c: version.h
... ...
@@ -165,7 +165,7 @@ void cache_add(unsigned char *md5, cli_ctx *ctx) {
165 165
 
166 166
 int cache_check(unsigned char *hash, cli_ctx *ctx) {
167 167
     fmap_t *map = *ctx->fmap;
168
-    size_t todo = map->len, at = 0;;
168
+    size_t todo = map->len, at = 0;
169 169
     cli_md5_ctx md5;
170 170
 
171 171
     if(!cache) return CL_VIRUS;
... ...
@@ -174,10 +174,8 @@ int cache_check(unsigned char *hash, cli_ctx *ctx) {
174 174
     while(todo) {
175 175
 	void *buf;
176 176
 	size_t readme = todo < FILEBUFF ? todo : FILEBUFF;
177
-	if(!(buf = fmap_need_off_once(map, at, readme)) != readme) {
178
-	    lseek(desc, seekback, SEEK_SET);
177
+	if(!(buf = fmap_need_off_once(map, at, readme)))
179 178
 	    return CL_VIRUS;
180
-	}
181 179
 	todo -= readme;
182 180
 	at += readme;
183 181
 	cli_md5_update(&md5, buf, readme);
... ...
@@ -2169,7 +2169,7 @@ int cli_magic_scandesc(int desc, cli_ctx *ctx)
2169 2169
     ctx->fmap--;
2170 2170
 
2171 2171
     if(ret == CL_VIRUS)
2172
-	return cli_checkfp(desc, ctx) ? CL_CLEAN : CL_VIRUS;
2172
+	ret = cli_checkfp(desc, ctx) ? CL_CLEAN : CL_VIRUS;
2173 2173
 
2174 2174
     switch(ret) {
2175 2175
 	case CL_EFORMAT:
... ...
@@ -2177,10 +2177,10 @@ int cli_magic_scandesc(int desc, cli_ctx *ctx)
2177 2177
 	case CL_EMAXSIZE:
2178 2178
 	case CL_EMAXFILES:
2179 2179
 	    cli_dbgmsg("Descriptor[%d]: %s\n", desc, cl_strerror(ret));
2180
+	case CL_CLEAN:
2180 2181
 	    cache_add(hash, ctx);
2181 2182
 	    return CL_CLEAN;
2182 2183
 	default:
2183
-	    if(ret == CL_CLEAN) cache_add(hash, ctx);
2184 2184
 	    return ret;
2185 2185
     }
2186 2186
 }