git-svn: trunk@2464
Tomasz Kojm authored on 2006/10/30 20:26:49... | ... |
@@ -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 |
|