... | ... |
@@ -1,3 +1,7 @@ |
1 |
+Fri Oct 8 14:23:24 CEST 2010 (tk) |
|
2 |
+---------------------------------- |
|
3 |
+ * libclamav/readdb.c: fix handling of Engine attrib (bb#2297) |
|
4 |
+ |
|
1 | 5 |
Tue Oct 5 18:14:59 EEST 2010 (edwin) |
2 | 6 |
------------------------------------- |
3 | 7 |
* libclamav/pdf.c: Fix 'Unknown error code ERROR'(bb #2296). |
... | ... |
@@ -1256,6 +1256,19 @@ static int load_oneldb(char *buffer, int chkpua, int chkign, struct cl_engine *e |
1256 | 1256 |
return CL_EMALFDB; |
1257 | 1257 |
} |
1258 | 1258 |
|
1259 |
+ if(tdb.engine) { |
|
1260 |
+ if(tdb.engine[0] > cl_retflevel()) { |
|
1261 |
+ cli_dbgmsg("cli_loadldb: Signature for %s not loaded (required f-level: %u)\n", virname, tdb.engine[0]); |
|
1262 |
+ FREE_TDB(tdb); |
|
1263 |
+ (*sigs)--; |
|
1264 |
+ return CL_SUCCESS; |
|
1265 |
+ } else if(tdb.engine[1] < cl_retflevel()) { |
|
1266 |
+ FREE_TDB(tdb); |
|
1267 |
+ (*sigs)--; |
|
1268 |
+ return CL_SUCCESS; |
|
1269 |
+ } |
|
1270 |
+ } |
|
1271 |
+ |
|
1259 | 1272 |
if(!tdb.target) { |
1260 | 1273 |
cli_errmsg("cli_loadldb: No target specified in TDB\n"); |
1261 | 1274 |
FREE_TDB(tdb); |
... | ... |
@@ -1337,19 +1350,6 @@ static int load_oneldb(char *buffer, int chkpua, int chkign, struct cl_engine *e |
1337 | 1337 |
return CL_EMEM; |
1338 | 1338 |
tdb.macro_ptids[i-1] = root->ac_patterns-1; |
1339 | 1339 |
} |
1340 |
- |
|
1341 |
- if(tdb.engine) { |
|
1342 |
- if(tdb.engine[0] > cl_retflevel()) { |
|
1343 |
- cli_dbgmsg("cli_loadldb: Signature for %s not loaded (required f-level: %u)\n", virname, tdb.engine[0]); |
|
1344 |
- FREE_TDB(tdb); |
|
1345 |
- (*sigs)--; |
|
1346 |
- return CL_SUCCESS; |
|
1347 |
- } else if(tdb.engine[1] < cl_retflevel()) { |
|
1348 |
- FREE_TDB(tdb); |
|
1349 |
- (*sigs)--; |
|
1350 |
- return CL_SUCCESS; |
|
1351 |
- } |
|
1352 |
- } |
|
1353 | 1340 |
} |
1354 | 1341 |
memcpy(&lsig->tdb, &tdb, sizeof(tdb)); |
1355 | 1342 |
return CL_SUCCESS; |