~louis/ubuntu/trusty/clamav/lp799623_fix_logrotate

« back to all changes in this revision

Viewing changes to libclamav/dconf.c

  • Committer: Bazaar Package Importer
  • Author(s): Scott Kitterman
  • Date: 2010-03-12 11:30:04 UTC
  • mfrom: (0.41.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20100312113004-b0fop4bkycszdd0z
Tags: 0.96~rc1+dfsg-0ubuntu1
* New upstream RC - FFE (LP: #537636):
  - Add OfficialDatabaseOnly option to clamav-base.postinst.in
  - Add LocalSocketGroup option to clamav-base.postinst.in
  - Add LocalSocketMode option to clamav-base.postinst.in
  - Add CrossFilesystems option to clamav-base.postinst.in
  - Add ClamukoScannerCount option to clamav-base.postinst.in
  - Add BytecodeSecurity opiton to clamav-base.postinst.in
  - Add DetectionStatsHostID option to clamav-freshclam.postinst.in
  - Add Bytecode option to clamav-freshclam.postinst.in
  - Add MilterSocketGroup option to clamav-milter.postinst.in
  - Add MilterSocketMode option to clamav-milter.postinst.in
  - Add ReportHostname option to clamav-milter.postinst.in
  - Bump libclamav SO version to 6.1.0 in libclamav6.install
  - Drop clamdmon from clamav.examples (no longer shipped by upstream)
  - Drop libclamav.a from libclamav-dev.install (not built by upstream)
  - Update SO version for lintian override for libclamav6
  - Add new Bytecode Testing Tool, usr/bin/clambc, to clamav.install
  - Add build-depends on python and python-setuptools for new test suite
  - Update debian/copyright for the embedded copy of llvm (using the system
    llvm is not currently feasible)

Show diffs side-by-side

added added

removed removed

Lines of Context:
73
73
 
74
74
    { "ELF",        NULL,           0x1,                    1 },
75
75
 
 
76
    { "MACHO",      NULL,           0x1,                    1 },
 
77
 
76
78
    { "ARCHIVE",    "RAR",          ARCH_CONF_RAR,          1 },
77
79
    { "ARCHIVE",    "ZIP",          ARCH_CONF_ZIP,          1 },
78
80
    { "ARCHIVE",    "GZIP",         ARCH_CONF_GZ,           1 },
83
85
    { "ARCHIVE",    "CHM",          ARCH_CONF_CHM,          1 },
84
86
    { "ARCHIVE",    "OLE2",         ARCH_CONF_OLE2,         1 },
85
87
    { "ARCHIVE",    "TAR",          ARCH_CONF_TAR,          1 },
 
88
    { "ARCHIVE",    "CPIO",         ARCH_CONF_CPIO,         1 },
86
89
    { "ARCHIVE",    "BINHEX",       ARCH_CONF_BINHEX,       1 },
87
90
    { "ARCHIVE",    "SIS",          ARCH_CONF_SIS,          1 },
88
91
    { "ARCHIVE",    "NSIS",         ARCH_CONF_NSIS,         1 },
89
92
    { "ARCHIVE",    "AUTOIT",       ARCH_CONF_AUTOIT,       1 },
 
93
    { "ARCHIVE",    "ISHIELD",      ARCH_CONF_ISHIELD,      1 },
 
94
    { "ARCHIVE",    "7zip",         ARCH_CONF_7Z,           1 },
90
95
 
91
96
    { "DOCUMENT",   "HTML",         DOC_CONF_HTML,          1 },
92
97
    { "DOCUMENT",   "RTF",          DOC_CONF_RTF,           1 },
105
110
    { "OTHER",      "CRYPTFF",      OTHER_CONF_CRYPTFF,     1 },
106
111
    { "OTHER",      "DLP",          OTHER_CONF_DLP,         1 },
107
112
    { "OTHER",      "MYDOOMLOG",    OTHER_CONF_MYDOOMLOG,   1 },
 
113
    { "OTHER",      "PREFILTERING", OTHER_CONF_PREFILTERING,1 },
108
114
 
109
115
    { "PHISHING",   "ENGINE",       PHISHING_CONF_ENGINE,   1 },
110
116
    { "PHISHING",   "ENTCONV",      PHISHING_CONF_ENTCONV,  1 },
111
117
 
 
118
    { "BYTECODE",   "INTERPRETER",  BYTECODE_INTERPRETER,   1 },
 
119
    { "BYTECODE",   "JIT X86",      BYTECODE_JIT_X86,       1 },
 
120
    { "BYTECODE",   "JIT PPC",      BYTECODE_JIT_PPC,       1 },
 
121
    { "BYTECODE",   "JIT ARM",      BYTECODE_JIT_ARM,       0 },
 
122
 
112
123
    { NULL,         NULL,           0,                      0 }
113
124
};
114
125
 
134
145
            if(modules[i].state)
135
146
                dconf->elf |= modules[i].bflag;
136
147
 
 
148
        } else if(!strcmp(modules[i].mname, "MACHO")) {
 
149
            if(modules[i].state)
 
150
                dconf->macho |= modules[i].bflag;
 
151
 
137
152
        } else if(!strcmp(modules[i].mname, "ARCHIVE")) {
138
153
            if(modules[i].state)
139
154
                dconf->archive |= modules[i].bflag;
152
167
        } else if(!strcmp(modules[i].mname, "PHISHING")) {
153
168
            if(modules[i].state)
154
169
                dconf->phishing |= modules[i].bflag;
 
170
        } else if(!strcmp(modules[i].mname, "BYTECODE")) {
 
171
            if (modules[i].state)
 
172
                dconf->bytecode |= modules[i].bflag;
155
173
        }
156
174
    }
157
175
 
160
178
 
161
179
void cli_dconf_print(struct cli_dconf *dconf)
162
180
{
163
 
        uint8_t pe = 0, elf = 0, arch = 0, doc = 0, mail = 0, other = 0, phishing=0;
164
 
        unsigned int i;
 
181
        unsigned int pe = 0, elf = 0, macho = 0, arch = 0, doc = 0, mail = 0;
 
182
        unsigned int other = 0, phishing = 0, i, bytecode=0;
165
183
 
166
184
 
167
185
    cli_dbgmsg("Dynamic engine configuration settings:\n");
184
202
                elf = 1;
185
203
            }
186
204
 
 
205
        } else if(!strcmp(modules[i].mname, "MACHO")) {
 
206
            if(!macho) {
 
207
                cli_dbgmsg("Module MACHO: %s\n", dconf->elf ? "On" : "Off");
 
208
                macho = 1;
 
209
            }
 
210
 
187
211
        } else if(!strcmp(modules[i].mname, "ARCHIVE")) {
188
212
            if(!arch) {
189
213
                cli_dbgmsg("Module ARCHIVE: %s\n", dconf->archive ? "On" : "Off");
232
256
                cli_dbgmsg("   * Submodule %10s:\t%s\n", modules[i].sname, (dconf->phishing & modules[i].bflag) ? "On" : "** Off **");
233
257
            else
234
258
                continue;
 
259
        } else if(!strcmp(modules[i].mname, "BYTECODE")) {
 
260
            if(!bytecode) {
 
261
                cli_dbgmsg("Module BYTECODE %s\n", dconf->phishing ? "On" : "Off");
 
262
                bytecode = 1;
 
263
            }
 
264
            if(dconf->bytecode)
 
265
                cli_dbgmsg("   * Submodule %10s:\t%s\n", modules[i].sname, (dconf->bytecode & modules[i].bflag) ? "On" : "** Off **");
 
266
            else
 
267
                continue;
235
268
        }
236
269
    }
237
270
}
302
335
            }
303
336
        }
304
337
 
 
338
        if(!strncmp(buffer, "MACHO:", 4) && chkflevel(buffer, 2)) {
 
339
            if(sscanf(buffer + 4, "0x%x", &val) == 1) {
 
340
                engine->dconf->macho = val;
 
341
            } else {
 
342
                ret = CL_EMALFDB;
 
343
                break;
 
344
            }
 
345
        }
 
346
 
305
347
        if(!strncmp(buffer, "ARCHIVE:", 8) && chkflevel(buffer, 2)) {
306
348
            if(sscanf(buffer + 8, "0x%x", &val) == 1) {
307
349
                engine->dconf->archive = val;
346
388
                break;
347
389
            }
348
390
        }
 
391
 
 
392
        if(!strncmp(buffer, "BYTECODE:", 9) && chkflevel(buffer, 2)) {
 
393
            if(sscanf(buffer + 9, "0x%x", &val) == 1) {
 
394
                engine->dconf->bytecode = val;
 
395
            } else {
 
396
                ret = CL_EMALFDB;
 
397
                break;
 
398
            }
 
399
        }
349
400
    }
350
401
 
351
402
    if(ret) {