summaryrefslogtreecommitdiff
path: root/system/ossec-agent
diff options
context:
space:
mode:
authorBrenton Earl <brent@exitstatusone.com>2021-03-29 21:06:57 +0200
committerRobby Workman <rworkman@slackbuilds.org>2021-04-17 23:50:41 -0500
commit86ff61d05b9fb40bc99e3cd2404a182afea00e4e (patch)
tree9502576f789cd196174fab9d55d81b661ce028de /system/ossec-agent
parent434f1f00dad150a1963b61c872ca5da7d33f322b (diff)
downloadslackbuilds-86ff61d05b9fb40bc99e3cd2404a182afea00e4e.tar.gz
system/ossec-agent: Patch for gcc >= 10.x.
Signed-off-by: Matteo Bernardini <ponce@slackbuilds.org>
Diffstat (limited to 'system/ossec-agent')
-rw-r--r--system/ossec-agent/gcc-fno-common-3.6.0.patch402
-rw-r--r--system/ossec-agent/ossec-agent.SlackBuild2
2 files changed, 404 insertions, 0 deletions
diff --git a/system/ossec-agent/gcc-fno-common-3.6.0.patch b/system/ossec-agent/gcc-fno-common-3.6.0.patch
new file mode 100644
index 0000000000..e8ed3c66dd
--- /dev/null
+++ b/system/ossec-agent/gcc-fno-common-3.6.0.patch
@@ -0,0 +1,402 @@
+diff --git a/src/addagent/main.c b/src/addagent/main.c
+index 587a8a3d8..ab12f0326 100644
+--- a/src/addagent/main.c
++++ b/src/addagent/main.c
+@@ -17,6 +17,7 @@ static void print_banner(void);
+ static void manage_shutdown(int sig) __attribute__((noreturn));
+ #endif
+
++int willchroot;
+
+ #if defined(__MINGW32__)
+ static int setenv(const char *name, const char *val, __attribute__((unused)) int overwrite)
+diff --git a/src/addagent/manage_agents.c b/src/addagent/manage_agents.c
+index ac39c1e66..4f9c266ff 100644
+--- a/src/addagent/manage_agents.c
++++ b/src/addagent/manage_agents.c
+@@ -85,6 +85,8 @@ int add_agent(int json_output)
+
+ char authfile[257];
+
++ extern int willchroot;
++
+ if(willchroot > 0) {
+ snprintf(authfile, 256, "%s", AUTH_FILE); //XXX
+ } else {
+diff --git a/src/addagent/manage_agents.h b/src/addagent/manage_agents.h
+index 4812dba43..f2962e80b 100644
+--- a/src/addagent/manage_agents.h
++++ b/src/addagent/manage_agents.h
+@@ -147,4 +147,4 @@ extern fpos_t fp_pos;
+ #define GMF_UNKN_ERROR ARGV0 ": Could not run GetModuleFileName which returned (%ld).\n"
+
+
+-int willchroot;
++//int willchroot;
+diff --git a/src/addagent/manage_keys.c b/src/addagent/manage_keys.c
+index 146b48326..ffb9a1f21 100644
+--- a/src/addagent/manage_keys.c
++++ b/src/addagent/manage_keys.c
+@@ -336,6 +336,8 @@ int k_bulkload(const char *cmdbulk)
+ char delims[] = ",";
+ char *token = NULL;
+
++ extern int willchroot;
++
+ /* Check if we can open the input file */
+ printf("Opening: [%s]\n", cmdbulk);
+ infp = fopen(cmdbulk, "r");
+diff --git a/src/analysisd/analysisd.c b/src/analysisd/analysisd.c
+index a220f4421..0a81971de 100644
+--- a/src/analysisd/analysisd.c
++++ b/src/analysisd/analysisd.c
+@@ -42,7 +42,12 @@
+ #endif
+
+ #ifdef SQLITE_ENABLED
+-#include "syscheck-sqlite.h"
++#include <sqlite3.h>
++sqlite3 *conn;
++#endif
++
++#ifdef LIBGEOIP_ENABLED
++GeoIP *geoipdb;
+ #endif
+
+ /** Prototypes **/
+diff --git a/src/analysisd/config.h b/src/analysisd/config.h
+index 8d74c756e..976d1942e 100644
+--- a/src/analysisd/config.h
++++ b/src/analysisd/config.h
+@@ -12,6 +12,7 @@
+
+ #include "config/config.h"
+ #include "config/global-config.h"
++
+ #ifdef LIBGEOIP_ENABLED
+ #include "GeoIP.h"
+ #endif
+@@ -20,9 +21,11 @@
+ extern long int __crt_ftell; /* Global ftell pointer */
+ extern _Config Config; /* Global Config structure */
+
++/*
+ #ifdef LIBGEOIP_ENABLED
+ GeoIP *geoipdb;
+ #endif
++*/
+
+ int GlobalConf(const char *cfgfile);
+
+diff --git a/src/analysisd/decoders/geoip.c b/src/analysisd/decoders/geoip.c
+index 464e4bb71..9816b4c81 100644
+--- a/src/analysisd/decoders/geoip.c
++++ b/src/analysisd/decoders/geoip.c
+@@ -30,6 +30,7 @@ char *GetGeoInfobyIP(char *ip_addr)
+ GeoIPRecord *geoiprecord;
+ char *geodata = NULL;
+ char geobuffer[256 +1];
++ extern GeoIP *geoipdb;
+
+ if(!geoipdb)
+ {
+diff --git a/src/analysisd/decoders/syscheck.c b/src/analysisd/decoders/syscheck.c
+index a6d675892..30339a00d 100644
+--- a/src/analysisd/decoders/syscheck.c
++++ b/src/analysisd/decoders/syscheck.c
+@@ -16,7 +16,7 @@
+ #include "decoder.h"
+
+ #ifdef SQLITE_ENABLED
+-#include "syscheck-sqlite.h"
++#include <sqlite3.h>
+ #endif
+
+ typedef struct __sdb {
+diff --git a/src/analysisd/makelists.c b/src/analysisd/makelists.c
+index 06c90db70..dfbe6a4a3 100644
+--- a/src/analysisd/makelists.c
++++ b/src/analysisd/makelists.c
+@@ -32,6 +32,10 @@ time_t c_time;
+ char __shost[512];
+ OSDecoderInfo *NULL_Decoder;
+
++#ifdef LIBGEOIP_ENABLED
++GeoIP *geoipdb;
++#endif
++
+ /* print help statement */
+ __attribute__((noreturn))
+ static void help_makelists(void)
+diff --git a/src/analysisd/syscheck-sqlite.h b/src/analysisd/syscheck-sqlite.h
+deleted file mode 100644
+index 526cab26e..000000000
+--- a/src/analysisd/syscheck-sqlite.h
++++ /dev/null
+@@ -1,5 +0,0 @@
+-#ifdef SQLITE_ENABLED
+-#include <sqlite3.h>
+-
+-sqlite3 *conn;
+-#endif
+diff --git a/src/analysisd/testrule.c b/src/analysisd/testrule.c
+index c08fb4885..b1aa928f7 100644
+--- a/src/analysisd/testrule.c
++++ b/src/analysisd/testrule.c
+@@ -83,6 +83,7 @@ int main(int argc, char **argv)
+ memset(prev_month, '\0', 4);
+
+ #ifdef LIBGEOIP_ENABLED
++ extern GeoIP *geoipdb;
+ geoipdb = NULL;
+ #endif
+
+diff --git a/src/client-agent/agentd.c b/src/client-agent/agentd.c
+index c09cf87d3..67828e79c 100644
+--- a/src/client-agent/agentd.c
++++ b/src/client-agent/agentd.c
+@@ -23,6 +23,8 @@ void AgentdStart(const char *dir, int uid, int gid, const char *user, const char
+ fd_set fdset;
+ struct timeval fdtimeout;
+
++ extern agent *agt;
++
+ available_server = 0;
+
+ /* Initial random numbers must happen before chroot */
+diff --git a/src/client-agent/agentd.h b/src/client-agent/agentd.h
+index 0246a5457..a362ff9a3 100644
+--- a/src/client-agent/agentd.h
++++ b/src/client-agent/agentd.h
+@@ -81,9 +81,9 @@ void os_agent_cb(int fd, short ev, void *arg);
+ extern time_t available_server;
+ extern int run_foreground;
+ extern keystore keys;
+-extern agent *agt;
++//extern agent *agt;
+ #ifndef WIN32
+-struct imsgbuf server_ibuf;
++//struct imsgbuf server_ibuf;
+ #endif //WIN32
+
+ #endif /* __AGENTD_H */
+diff --git a/src/client-agent/event-forward.c b/src/client-agent/event-forward.c
+index 2e81f0c90..22ed0beb9 100644
+--- a/src/client-agent/event-forward.c
++++ b/src/client-agent/event-forward.c
+@@ -19,6 +19,9 @@
+ /* Receive a message locally on the agent and forward it to the manager */
+ void *EventForward(void)
+ {
++
++ extern agent *agt;
++
+ ssize_t recv_b;
+ char msg[OS_MAXSTR + 1];
+
+diff --git a/src/client-agent/main.c b/src/client-agent/main.c
+index 5f85cfb73..01c18970c 100644
+--- a/src/client-agent/main.c
++++ b/src/client-agent/main.c
+@@ -16,7 +16,8 @@
+ #define ARGV0 "ossec-agentd"
+ #endif
+
+-extern struct imsgbuf server_ibuf;
++//extern struct imsgbuf server_ibuf;
++struct imsgbuf server_ibuf;
+
+
+ /* Prototypes */
+@@ -112,6 +113,8 @@ int main(int argc, char **argv)
+
+ debug1(STARTED_MSG, ARGV0);
+
++ extern agent *agt;
++
+ agt = (agent *)calloc(1, sizeof(agent));
+ if (!agt) {
+ ErrorExit(MEM_ERROR, ARGV0, errno, strerror(errno));
+diff --git a/src/client-agent/notify.c b/src/client-agent/notify.c
+index 1b239f26c..93fec325c 100644
+--- a/src/client-agent/notify.c
++++ b/src/client-agent/notify.c
+@@ -68,6 +68,8 @@ void run_notify()
+ os_md5 md5sum;
+ time_t curr_time;
+
++ extern agent *agt;
++
+ keep_alive_random[0] = '\0';
+ curr_time = time(0);
+
+diff --git a/src/client-agent/receiver-win.c b/src/client-agent/receiver-win.c
+index 859bdf7f9..4ab62ee77 100644
+--- a/src/client-agent/receiver-win.c
++++ b/src/client-agent/receiver-win.c
+@@ -19,6 +19,7 @@
+ /* Receive events from the server */
+ void *receiver_thread(__attribute__((unused)) void *none)
+ {
++ extern agent *agt;
+ int recv_b;
+
+ char file[OS_SIZE_1024 + 1];
+diff --git a/src/client-agent/receiver.c b/src/client-agent/receiver.c
+index fde64c282..5286e60dc 100644
+--- a/src/client-agent/receiver.c
++++ b/src/client-agent/receiver.c
+@@ -29,6 +29,8 @@ void *receive_msg()
+ char cleartext[OS_MAXSTR + 1];
+ char *tmp_msg;
+
++ extern agent *agt;
++
+ memset(cleartext, '\0', OS_MAXSTR + 1);
+ memset(buffer, '\0', OS_MAXSTR + 1);
+
+diff --git a/src/client-agent/sendmsg.c b/src/client-agent/sendmsg.c
+index 454c2e714..3076dfcf9 100644
+--- a/src/client-agent/sendmsg.c
++++ b/src/client-agent/sendmsg.c
+@@ -15,6 +15,9 @@
+ /* Send a message to the server */
+ int send_msg(int agentid, const char *msg)
+ {
++
++ extern agent *agt;
++
+ size_t msg_size;
+ char crypt_msg[OS_MAXSTR + 1];
+
+diff --git a/src/client-agent/start_agent.c b/src/client-agent/start_agent.c
+index 51670cee5..f1df43715 100644
+--- a/src/client-agent/start_agent.c
++++ b/src/client-agent/start_agent.c
+@@ -24,6 +24,9 @@ int connect_server(int initial_id)
+ #ifdef WIN32
+ unsigned int attempts = 2;
+ #endif //WIN32
++
++ extern agent *agt;
++
+ int rc = initial_id;
+
+ /* Checking if the initial is zero, meaning we have to
+@@ -139,6 +142,8 @@ void start_agent(int is_startup)
+ char cleartext[OS_MAXSTR + 1];
+ char fmsg[OS_MAXSTR + 1];
+
++ extern agent *agt;
++
+ memset(msg, '\0', OS_MAXSTR + 2);
+ memset(buffer, '\0', OS_MAXSTR + 1);
+ memset(cleartext, '\0', OS_MAXSTR + 1);
+@@ -241,6 +246,8 @@ void os_agent_cb(int fd, short ev, void *arg) {
+ struct imsg imsg;
+ struct imsgbuf *ibuf = (struct imsgbuf *)arg;
+
++ extern agent *agt;
++
+ if (ev & EV_READ) {
+ if ((n = imsg_read(ibuf) == -1 && errno != EAGAIN)) {
+ ErrorExit("%s: ERROR: imsg_read() failed: %s", ARGV0, strerror(errno));
+diff --git a/src/os_net/os_net.c b/src/os_net/os_net.c
+index f18e3be77..756e9fac8 100644
+--- a/src/os_net/os_net.c
++++ b/src/os_net/os_net.c
+@@ -14,7 +14,7 @@
+ #include <errno.h>
+ #include "shared.h"
+ #include "os_net.h"
+-agent *agt;
++agent *os_net_agt;
+
+ /* Prototypes */
+ static OSNetInfo *OS_Bindport(char *_port, unsigned int _proto, const char *_ip);
+@@ -346,11 +346,11 @@ int OS_Connect(char *_port, unsigned int protocol, const char *_ip)
+ return(OS_INVALID);
+ }
+
+- if (agt) {
+- if (agt->lip) {
++ if (os_net_agt) {
++ if (os_net_agt->lip) {
+ memset(&hints, 0, sizeof(struct addrinfo));
+ hints.ai_flags = AI_NUMERICHOST;
+- s = getaddrinfo(agt->lip, NULL, &hints, &result);
++ s = getaddrinfo(os_net_agt->lip, NULL, &hints, &result);
+ if (s != 0) {
+ verbose("getaddrinfo: %s", gai_strerror(s));
+ }
+@@ -363,8 +363,8 @@ int OS_Connect(char *_port, unsigned int protocol, const char *_ip)
+ memset(&hints, 0, sizeof(struct addrinfo));
+ /* Allow IPv4 or IPv6 if local_ip isn't specified */
+ hints.ai_family = AF_UNSPEC;
+- if (agt) {
+- if (agt->lip) {
++ if (os_net_agt) {
++ if (os_net_agt->lip) {
+ hints.ai_family = local_ai->ai_family;
+ }
+ }
+@@ -398,13 +398,13 @@ int OS_Connect(char *_port, unsigned int protocol, const char *_ip)
+ continue;
+ }
+
+- if (agt) {
+- if (agt->lip) {
++ if (os_net_agt) {
++ if (os_net_agt->lip) {
+ if (bind(ossock, local_ai->ai_addr, local_ai->ai_addrlen)) {
+ verbose("Unable to bind to local address %s. Ignoring. (%s)",
+- agt->lip, strerror(errno));
++ os_net_agt->lip, strerror(errno));
+ }
+- else verbose("Connecting from local address %s", agt->lip);
++ else verbose("Connecting from local address %s", os_net_agt->lip);
+ }
+ }
+
+diff --git a/src/os_net/os_net.h b/src/os_net/os_net.h
+index 9b7250928..3aaf00429 100644
+--- a/src/os_net/os_net.h
++++ b/src/os_net/os_net.h
+@@ -13,7 +13,7 @@
+
+ #include "headers/shared.h"
+ #include "config/client-config.h"
+-extern agent *agt;
++extern agent *os_net_agt;
+ #ifdef WIN32
+ #ifndef AI_ADDRCONFIG
+ #define AI_ADDRCONFIG 0x0400
+diff --git a/src/win32/win_agent.c b/src/win32/win_agent.c
+index 40a37e621..a2ec784f2 100644
+--- a/src/win32/win_agent.c
++++ b/src/win32/win_agent.c
+@@ -124,6 +124,7 @@ int local_start()
+ WSADATA wsaData;
+ DWORD threadID;
+ DWORD threadID2;
++ extern agent *agt;
+
+ /* Start agent */
+ agt = (agent *)calloc(1, sizeof(agent));
+@@ -271,6 +272,7 @@ int SendMSG(__attribute__((unused)) int queue, const char *message, const char *
+ char tmpstr[OS_MAXSTR + 2];
+ char crypt_msg[OS_MAXSTR + 2];
+ DWORD dwWaitResult;
++ extern agent *agt;
+
+ tmpstr[OS_MAXSTR + 1] = '\0';
+ crypt_msg[OS_MAXSTR + 1] = '\0';
+@@ -468,6 +470,8 @@ void send_win32_info(time_t curr_time)
+ tmp_msg[OS_MAXSTR + 1] = '\0';
+ crypt_msg[OS_MAXSTR + 1] = '\0';
+
++ extern agent *agt;
++
+ debug1("%s: DEBUG: Sending keep alive message.", ARGV0);
+
+ /* Fix time */
diff --git a/system/ossec-agent/ossec-agent.SlackBuild b/system/ossec-agent/ossec-agent.SlackBuild
index 6d5963a33e..c58dc53e93 100644
--- a/system/ossec-agent/ossec-agent.SlackBuild
+++ b/system/ossec-agent/ossec-agent.SlackBuild
@@ -116,6 +116,8 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+patch -p1 < $CWD/gcc-fno-common-3.6.0.patch
+
# Makefile fixes
sed -e 's|\(./init/adduser.sh.*\)|#\1|' \
-e 's|\(DEFINES+=-DDEFAULTDIR=\).*|\1\\"/var/ossec\\"|' \