[Bug 190709] New: PATCH: ossec-hids-client pkg-plist owner/group fixes + backported patches

bz-noreply at freebsd.org bz-noreply at freebsd.org
Fri Jun 6 11:59:44 UTC 2014


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=190709

            Bug ID: 190709
           Summary: PATCH: ossec-hids-client pkg-plist owner/group fixes +
                    backported patches
           Product: Ports Tree
           Version: Latest
          Hardware: Any
                OS: Any
            Status: Needs Triage
          Severity: Affects Many People
          Priority: Normal
         Component: Individual Port(s)
          Assignee: freebsd-ports-bugs at FreeBSD.org
          Reporter: johan at stromnet.se

The ossec-hids-client port did not set owner/group properly on installed files,
resulting in an unusable installation which did not start.
The updated pkg-plist.client is based on what InstallAgent.sh does. Permissions
are set properly when staged, so no need to explicilty set those in pkg-plist.

In order to track down the problems, I did some bugfixes in the C files as
well, more or less backports from master:
- Enable foreground mode in ossec-agentd (More or less
https://github.com/ossec/ossec-hids/commit/4390529ea01672562ea33b230ef1ad118991c6c5)
- Fix crash wrong permissinos
(https://github.com/ossec/ossec-hids/commit/9152f88ad1af49f1ad78bcaa4751e696254f4a26#diff-b9f5a46d9fc2812729f53e286ce13212)

Note: This problem arised when I upgraded ossec-client-hids from an earlier
version, not sure about permissions/owner in earlier installation..

--- ossec-hids.patch begins here ---
--- ossec-hids-client/pkg-plist.client    2014-06-06 13:05:56.851752262 +0200
+++ ossec-hids-client/pkg-plist.client    2014-06-06 13:31:19.523750149 +0200
@@ -1,3 +1,4 @@
+ at group ossec
 %%PORTNAME%%/active-response/bin/disable-account.sh
 %%PORTNAME%%/active-response/bin/firewall-drop.sh
 %%PORTNAME%%/active-response/bin/host-deny.sh
@@ -27,7 +28,9 @@
 %%PORTNAME%%/etc/shared/win_applications_rcl.txt
 @sample %%PORTNAME%%/etc/ossec.conf.sample
 %%PORTNAME%%/etc/internal_options.conf
+ at owner ossec
 %%PORTNAME%%/logs/ossec.log
+ at owner
 %%PORTNAME%%/agentless/main.exp
 %%PORTNAME%%/agentless/sshlogin.exp
 %%PORTNAME%%/agentless/ssh_asa-fwsmconfig_diff
@@ -49,11 +52,16 @@
 @dirrmtry %%PORTNAME%%/var
 @dirrmtry %%PORTNAME%%/queue/syscheck
 @dirrmtry %%PORTNAME%%/queue/rids
+ at owner ossec
 @dirrmtry %%PORTNAME%%/queue/ossec
 @dirrmtry %%PORTNAME%%/queue/diff
+ at owner
 @dirrmtry %%PORTNAME%%/queue/alerts
 @dirrmtry %%PORTNAME%%/queue
 @dirrmtry %%PORTNAME%%/logs
+ at owner
 @dirrmtry %%PORTNAME%%/bin
+ at owner ossec
 @dirrmtry %%PORTNAME%%/.ssh
+ at owner
 @dirrmtry %%PORTNAME%%
--- ossec-hids-server/files/patch-src-client-agent-agentd.c    1970-01-01
01:00:00.000000000 +0100
+++ ossec-hids-server/files/patch-src-client-agent-agentd.c    2014-06-06
12:25:37.760750313 +0200
@@ -0,0 +1,25 @@
+--- src/client-agent/agentd.c    2014-06-06 12:18:18.409751472 +0200
++++ src/client-agent/agentd.c    2014-06-06 12:20:53.693751458 +0200
+@@ -25,7 +25,7 @@
+ /* AgentdStart v0.2, 2005/11/09
+  * Starts the agent daemon.
+  */
+-void AgentdStart(char *dir, int uid, int gid, char *user, char *group)
++void AgentdStart(char *dir, int uid, int gid, char *user, char *group, int
run_foreground)
+ {
+     int rc = 0;
+     int pid = 0;
+@@ -39,9 +39,10 @@
+     /* Going daemon */
+     pid = getpid();
+     available_server = 0;
+-    nowDaemon();
+-    goDaemon();
+-
++    if(!run_foreground) {
++        nowDaemon();
++        goDaemon();
++   }
+ 
+     /* Setting group ID */
+     if(Privsep_SetGroup(gid) < 0)
--- ossec-hids-server/files/patch-src-client-agent-agentd.h    1970-01-01
01:00:00.000000000 +0100
+++ ossec-hids-server/files/patch-src-client-agent-agentd.h    2014-06-06
12:32:14.076752208 +0200
@@ -0,0 +1,11 @@
+--- src/client-agent/agentd.h 12:31:27.988751899 +0200
++++ src/client-agent/agentd.h    2014-06-06 12:31:46.085753047 +0200
+@@ -29,7 +29,7 @@
+ int ClientConf(char *cfgfile);
+ 
+ /* Agentd init function */
+-void AgentdStart(char *dir, int uid, int gid, char *user, char *group);
++void AgentdStart(char *dir, int uid, int gid, char *user, char *group, int
run_foreground);
+ 
+ /* Event Forwarder */
+ void *EventForward();
--- ossec-hids-server/files/patch-src-client-agent-main.c    1970-01-01
01:00:00.000000000 +0100
+++ ossec-hids-server/files/patch-src-client-agent-main.c    2014-06-06
12:28:18.809751993 +0200
@@ -0,0 +1,39 @@
+--- src/client-agent/main.c    2014-06-06 12:26:41.849751148 +0200
++++ src/client-agent/main.c    2014-06-06 12:18:11.004752087 +0200
+@@ -35,7 +35,7 @@
+ int main(int argc, char **argv)
+ {
+     int c = 0;
+-    int test_config = 0;
++    int test_config = 0,run_foreground = 0;
+ 
+     char *dir = DEFAULTDIR;
+     char *user = USER;
+@@ -49,7 +49,7 @@
+     OS_SetName(ARGV0);
+ 
+ 
+-    while((c = getopt(argc, argv, "Vtdhu:g:D:")) != -1){
++    while((c = getopt(argc, argv, "Vtdhfu:g:D:")) != -1){
+         switch(c){
+             case 'V':
+                 print_version();
+@@ -60,6 +60,9 @@
+             case 'd':
+                 nowDebug();
+                 break;
++            case 'f':
++                run_foreground = 1;
++                break;
+             case 'u':
+                 if(!optarg)
+                     ErrorExit("%s: -u needs an argument",ARGV0);
+@@ -130,7 +133,7 @@
+ 
+ 
+     /* Agentd Start */
+-    AgentdStart(dir, uid, gid, user, group);
++    AgentdStart(dir, uid, gid, user, group, run_foreground);
+ 
+ 
+     return(0);
--- ossec-hids-server/files/patch-src-os_crypto-shared-msgs.c    1970-01-01
01:00:00.000000000 +0100
+++ ossec-hids-server/files/patch-src-os_crypto-shared-msgs.c    2014-06-06
12:52:23.606139979 +0200
@@ -0,0 +1,11 @@
+--- src/os_crypto/shared/msgs.c    2014-06-06 12:51:28.955750160 +0200
++++ src/os_crypto/shared/msgs.c    2014-06-06 12:51:37.334750679 +0200
+@@ -86,7 +86,7 @@
+                 int my_error = errno;
+ 
+                 /* Just in case we run out of file descriptiors */
+-                if((keys->keyentries[i -1]->fp) && (i > 10))
++                if((i > 10) && (keys->keyentries[i -1]->fp))
+                 {
+                     fclose(keys->keyentries[i -1]->fp);
+ 
--- ossec-hids.patch ends here ---

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-ports-bugs mailing list