1 /* Copyright (C) 2009 Trend Micro Inc.
4 * This program is a free software; you can redistribute it
5 * and/or modify it under the terms of the GNU General Public
6 * License (version 3) as published by the FSF - Free Software
11 #include "eventinfo.h"
14 /* Initialize the cdb lookup lists */
15 void Lists_OP_CreateLists()
21 int Lists_OP_LoadList(char *listfile)
23 /* XXX Jeremy: I hate this. I think I'm missing something dumb here */
25 char a_filename[OS_MAXSTR];
26 char b_filename[OS_MAXSTR];
27 ListNode *tmp_listnode_pt = NULL;
29 a_filename[OS_MAXSTR - 2] = '\0';
30 b_filename[OS_MAXSTR - 2] = '\0';
32 tmp_listnode_pt = (ListNode *)calloc(1, sizeof(ListNode));
33 if (tmp_listnode_pt == NULL) {
34 ErrorExit(MEM_ERROR, ARGV0, errno, strerror(errno));
37 snprintf(a_filename, OS_MAXSTR - 1, "%s", listfile);
38 if ((strchr(a_filename, '/') == NULL)) {
39 /* default to rules/ if a path is not given */
40 snprintf(b_filename, OS_MAXSTR - 1, "rules/%s", a_filename);
41 snprintf(a_filename, OS_MAXSTR - 1, "%s", b_filename);
43 if ((holder = strstr(a_filename, ".cdb"))) {
44 snprintf(b_filename, (size_t)(holder - a_filename) + 1, "%s", a_filename);
45 snprintf(a_filename, OS_MAXSTR - 1, "%s", b_filename);
48 snprintf(b_filename, OS_MAXSTR - 1, "%s.cdb", a_filename);
50 os_strdup(a_filename, tmp_listnode_pt->txt_filename);
51 os_strdup(b_filename, tmp_listnode_pt->cdb_filename);
53 tmp_listnode_pt->loaded = 0;
55 OS_AddList(tmp_listnode_pt);