minor perf fixes

remotes/push_mirror/guardrails
aCaB 14 years ago
parent f0a5895b58
commit 004735cb0e
  1. 45
      libclamav/readdb.c

@ -1897,13 +1897,31 @@ static int cli_loadhash(FILE *fs, struct cl_engine *engine, unsigned int *signo,
const char *pt, *virname;
int ret = CL_SUCCESS;
unsigned int size_field = 1, md5_field = 0, line = 0, sigs = 0, tokens_count;
struct cli_matcher *db = NULL;
struct cli_matcher *db;
unsigned long size;
if(mode == MD5_MDB) {
size_field = 0;
md5_field = 1;
db = engine->hm_hdb;
} else if(mode == MD5_MDB)
db = engine->hm_mdb;
else
db = engine->hm_fp;
if(!db) {
if(!(db = mpool_calloc(engine->mempool, 1, sizeof(*db))))
return CL_EMEM;
#ifdef USE_MPOOL
db->mempool = engine->mempool;
#endif
if(mode == MD5_HDB)
engine->hm_hdb = db;
else if(mode == MD5_MDB)
engine->hm_mdb = db;
else
engine->hm_fp = db;
}
if(engine->ignored)
@ -1973,31 +1991,8 @@ static int cli_loadhash(FILE *fs, struct cl_engine *engine, unsigned int *signo,
break;
}
if(mode == MD5_HDB)
db = engine->hm_hdb;
else if(mode == MD5_MDB)
db = engine->hm_mdb;
else
db = engine->hm_fp;
if(!db) {
if(!(db = mpool_calloc(engine->mempool, 1, sizeof(*db)))) {
ret = CL_EMEM;
break;
}
#ifdef USE_MPOOL
db->mempool = engine->mempool;
#endif
if(mode == MD5_HDB)
engine->hm_hdb = db;
else if(mode == MD5_MDB)
engine->hm_mdb = db;
else
engine->hm_fp = db;
}
if((ret = hm_addhash(db, tokens[md5_field], size, virname))) {
cli_errmsg("cli_loadhash: Malformed MD5 string at line %u\n", line);
cli_errmsg("cli_loadhash: Malformed hash string at line %u\n", line);
mpool_free(engine->mempool, (void *)virname);
break;
}

Loading…
Cancel
Save