git-svn-id: file:///var/lib/svn/clamav-devel/trunk/clamav-devel@2464 77e5149b-7576-45b1-b177-96237e5ba77b
| ... | ... |
@@ -1,3 +1,7 @@ |
| 1 |
+Mon Oct 30 12:24:09 CET 2006 (tk) |
|
| 2 |
+--------------------------------- |
|
| 3 |
+ * libclamav/readdb.c: cl_stat() functions now check .info files |
|
| 4 |
+ |
|
| 1 | 5 |
Sun Oct 29 20:12:26 CET 2006 (tk) |
| 2 | 6 |
--------------------------------- |
| 3 | 7 |
* shared/misc.c: freshdbdir now supports daily.inc |
| ... | ... |
@@ -1405,8 +1405,15 @@ int cl_statinidir(const char *dirname, struct cl_stat *dbstat) |
| 1405 | 1405 |
dbstat->statdname = (char **) realloc(dbstat->statdname, dbstat->no * sizeof(char *)); |
| 1406 | 1406 |
#endif |
| 1407 | 1407 |
|
| 1408 |
- fname = cli_calloc(strlen(dirname) + strlen(dent->d_name) + 2, sizeof(char)); |
|
| 1409 |
- sprintf(fname, "%s/%s", dirname, dent->d_name); |
|
| 1408 |
+ fname = cli_calloc(strlen(dirname) + strlen(dent->d_name) + 32, sizeof(char)); |
|
| 1409 |
+ if(cli_strbcasestr(dent->d_name, ".inc")) {
|
|
| 1410 |
+ if(strstr(dent->d_name, "main")) |
|
| 1411 |
+ sprintf(fname, "%s/main.inc/main.info", dirname); |
|
| 1412 |
+ else |
|
| 1413 |
+ sprintf(fname, "%s/daily.inc/daily.info", dirname); |
|
| 1414 |
+ } else {
|
|
| 1415 |
+ sprintf(fname, "%s/%s", dirname, dent->d_name); |
|
| 1416 |
+ } |
|
| 1410 | 1417 |
#if defined(C_INTERIX) || defined(C_OS2) |
| 1411 | 1418 |
dbstat->statdname[dbstat->no - 1] = (char *) cli_calloc(strlen(dent->d_name) + 1, sizeof(char)); |
| 1412 | 1419 |
strcpy(dbstat->statdname[dbstat->no - 1], dent->d_name); |
| ... | ... |
@@ -1478,8 +1485,15 @@ int cl_statchkdir(const struct cl_stat *dbstat) |
| 1478 | 1478 |
cli_strbcasestr(dent->d_name, ".inc") || |
| 1479 | 1479 |
cli_strbcasestr(dent->d_name, ".cvd"))) {
|
| 1480 | 1480 |
|
| 1481 |
- fname = cli_calloc(strlen(dbstat->dir) + strlen(dent->d_name) + 2, sizeof(char)); |
|
| 1482 |
- sprintf(fname, "%s/%s", dbstat->dir, dent->d_name); |
|
| 1481 |
+ fname = cli_calloc(strlen(dbstat->dir) + strlen(dent->d_name) + 32, sizeof(char)); |
|
| 1482 |
+ if(cli_strbcasestr(dent->d_name, ".inc")) {
|
|
| 1483 |
+ if(strstr(dent->d_name, "main")) |
|
| 1484 |
+ sprintf(fname, "%s/main.inc/main.info", dbstat->dir); |
|
| 1485 |
+ else |
|
| 1486 |
+ sprintf(fname, "%s/daily.inc/daily.info", dbstat->dir); |
|
| 1487 |
+ } else {
|
|
| 1488 |
+ sprintf(fname, "%s/%s", dbstat->dir, dent->d_name); |
|
| 1489 |
+ } |
|
| 1483 | 1490 |
stat(fname, &sb); |
| 1484 | 1491 |
free(fname); |
| 1485 | 1492 |
|