Skip to content

Commit b4621c4

Browse files
committed
Let Syscheckd and Remoted handle the disabled state in the same way.
If no component stanza defined, keep disabled. If component stanza defined but no disabled tag defined, keep enabled.
1 parent 723d81c commit b4621c4

7 files changed

Lines changed: 32 additions & 4 deletions

File tree

src/config/rootcheck-config.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,9 @@ int Read_Rootcheck(XML_NODE node, void *configp, __attribute__((unused)) void *m
6161
rootcheck = (rkconfig *)configp;
6262

6363
/* If rootcheck is defined, enable it by default */
64-
rootcheck->disabled = 0;
64+
if (rootcheck->disabled == RK_CONF_UNPARSED) {
65+
rootcheck->disabled = RK_CONF_UNDEFINED;
66+
}
6567

6668
if (!node)
6769
return 0;

src/config/rootcheck-config.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212

1313
#include <stdio.h>
1414

15+
#define RK_CONF_UNPARSED -2
16+
#define RK_CONF_UNDEFINED -1
17+
1518
typedef struct _rkconfig {
1619
const char *workdir;
1720
char *basedir;

src/config/syscheck-config.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ int dump_syscheck_entry(syscheck_config *syscheck, const char *entry, int vals,
2121
} else {
2222
pl = overwrite;
2323
}
24-
24+
2525
if (reg == 1) {
2626
#ifdef WIN32
2727
if (syscheck->registry == NULL) {
@@ -787,6 +787,10 @@ int Read_Syscheck(const OS_XML *xml, XML_NODE node, void *configp, __attribute__
787787
syscheck = (syscheck_config *)configp;
788788
unsigned int nodiff_size = 0;
789789

790+
if (syscheck->disabled == SK_CONF_UNPARSED) {
791+
syscheck->disabled = SK_CONF_UNDEFINED;
792+
}
793+
790794
while (node && node[i]) {
791795
if (!node[i]->element) {
792796
merror(XML_ELEMNULL);

src/config/syscheck-config.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@
5050
#define WD_IGNORE_REST 0x0000008
5151
#endif
5252

53+
#define SK_CONF_UNPARSED -2
54+
#define SK_CONF_UNDEFINED -1
55+
5356
//Max allowed value for recursion
5457
#define MAX_DEPTH_ALLOWED 320
5558

src/rootcheck/config.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,14 @@ int Read_Rootcheck_Config(const char *cfgfile)
3030
ReadConfig(modules, AGENTCONFIG, &rootcheck, NULL);
3131
#endif
3232

33+
switch (rootcheck.disabled) {
34+
case RK_CONF_UNPARSED:
35+
rootcheck.disabled = 1;
36+
break;
37+
case RK_CONF_UNDEFINED:
38+
rootcheck.disabled = 0;
39+
}
40+
3341
return (0);
3442
}
3543

src/rootcheck/rootcheck.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ int rootcheck_init(int test_config)
7878
rootcheck.notify = QUEUE;
7979
rootcheck.scanall = 0;
8080
rootcheck.readall = 0;
81-
rootcheck.disabled = 1;
81+
rootcheck.disabled = RK_CONF_UNPARSED;
8282
rootcheck.skip_nfs = 0;
8383
rootcheck.alert_msg = NULL;
8484
rootcheck.time = ROOTCHECK_WAIT;

src/syscheckd/config.c

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ int Read_Syscheck_Config(const char *cfgfile)
2424
modules |= CSYSCHECK;
2525

2626
syscheck.rootcheck = 0;
27-
syscheck.disabled = 1;
27+
syscheck.disabled = SK_CONF_UNPARSED;
2828
syscheck.skip_nfs = 1;
2929
syscheck.scan_on_start = 1;
3030
syscheck.time = 43200;
@@ -66,6 +66,14 @@ int Read_Syscheck_Config(const char *cfgfile)
6666
ReadConfig(modules, AGENTCONFIG, &syscheck, NULL);
6767
#endif
6868

69+
switch (syscheck.disabled) {
70+
case SK_CONF_UNPARSED:
71+
syscheck.disabled = 1;
72+
break;
73+
case SK_CONF_UNDEFINED:
74+
syscheck.disabled = 0;
75+
}
76+
6977
#ifndef WIN32
7078
/* We must have at least one directory to check */
7179
if (!syscheck.dir || syscheck.dir[0] == NULL) {

0 commit comments

Comments
 (0)