bb11565 - return error for bad file type in cdb sigs & fix cab file name sanitizing.

pull/56/head
Steven Morgan 9 years ago
parent a8b6bc008f
commit fd0ad26045
  1. 4
      libclamav/cab.c
  2. 5
      libclamav/readdb.c

@ -135,9 +135,9 @@ static int cab_chkname(char *name, int san)
if(!san && (strchr("%/*?|\\\"+=<>;:\t ", name[i]) || !isascii(name[i]))) {
cli_dbgmsg("cab_chkname: File name contains disallowed characters\n");
return 1;
} else if(san && !isalnum(name[i])) {
} else if(san && !isprint(name[i])) {
name[i] = '*';
}
}
}
return 0;

@ -2755,10 +2755,11 @@ static int cli_loadcdb(FILE *fs, struct cl_engine *engine, unsigned int *signo,
if(!strcmp(tokens[1], "*")) {
new->ctype = CL_TYPE_ANY;
} else if((new->ctype = cli_ftcode(tokens[1])) == CL_TYPE_ERROR) {
cli_dbgmsg("cli_loadcdb: Unknown container type %s in signature for %s, skipping\n", tokens[1], tokens[0]);
cli_errmsg("cli_loadcdb: Unknown container type %s in signature for %s, skipping\n", tokens[1], tokens[0]);
ret = CL_EMALFDB;
mpool_free(engine->mempool, new->virname);
mpool_free(engine->mempool, new);
continue;
break;
}
if(strcmp(tokens[3], "*") && cli_regcomp(&new->name, tokens[3], REG_EXTENDED | REG_NOSUB)) {

Loading…
Cancel
Save