You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
208 lines
5.4 KiB
208 lines
5.4 KiB
From 61ea167f9b4ab34a1437736cbda20d21efd06e30 Mon Sep 17 00:00:00 2001
|
|
From: Jaco Kroon <jaco@uls.co.za>
|
|
Date: Tue, 11 May 2021 16:44:55 +0200
|
|
Subject: [PATCH] Minimum set of changes to make gcc10 compatible.
|
|
|
|
This does not fix any of the other bugs I spotted along the way
|
|
(module_path being assigned a static string and then later free()d for
|
|
example).
|
|
---
|
|
.gitignore | 2 ++
|
|
include/captagent/api.h | 10 ++++++++--
|
|
include/captagent/modules.h | 2 +-
|
|
src/captagent.c | 2 --
|
|
src/conf_function.c | 3 +++
|
|
src/conf_function.h | 2 --
|
|
src/modules.c | 3 +++
|
|
src/modules/protocol/tls/decryption.h | 6 +-----
|
|
src/modules/protocol/tls/parser_tls.h | 12 ++++++------
|
|
9 files changed, 24 insertions(+), 18 deletions(-)
|
|
|
|
diff --git a/.gitignore b/.gitignore
|
|
index d2ed328..a7cd5a3 100644
|
|
--- a/.gitignore
|
|
+++ b/.gitignore
|
|
@@ -2,6 +2,7 @@ INSTALL
|
|
Makefile
|
|
Makefile.in
|
|
aclocal.m4
|
|
+compile
|
|
config.guess
|
|
src/config.h
|
|
src/config.h.in
|
|
@@ -45,5 +46,6 @@ pkg/debian/files
|
|
pkg/debian/captagent/
|
|
pkg/debian/captagent.init
|
|
src/captagent
|
|
+src/capplan.tab.c
|
|
*.dh-orig
|
|
|
|
diff --git a/include/captagent/api.h b/include/captagent/api.h
|
|
index 4ec62de..d550875 100644
|
|
--- a/include/captagent/api.h
|
|
+++ b/include/captagent/api.h
|
|
@@ -43,6 +43,13 @@
|
|
|
|
#include "config.h"
|
|
|
|
+#ifdef __GNUC__
|
|
+/* GNU C */
|
|
+#define PACK_OFF __attribute__ ((__packed__));
|
|
+#else
|
|
+#define PACK_OFF
|
|
+#endif
|
|
+
|
|
#ifndef AGENT_CONFIG_DIR
|
|
#define AGENT_CONFIG_DIR "/usr/local/etc/captagent/"
|
|
#endif //DEF_CONF
|
|
@@ -120,9 +127,8 @@ typedef struct stats_object {
|
|
|
|
extern struct stats_object stats_obj;
|
|
|
|
-struct hep_module *hepmod;
|
|
extern int get_basestat(char *module, char *stats, size_t len);
|
|
-struct module *module_list;
|
|
+extern struct module *module_list;
|
|
|
|
#ifndef TRUE
|
|
#define TRUE 1
|
|
diff --git a/include/captagent/modules.h b/include/captagent/modules.h
|
|
index 1eedabe..ec0676b 100644
|
|
--- a/include/captagent/modules.h
|
|
+++ b/include/captagent/modules.h
|
|
@@ -27,7 +27,7 @@
|
|
#ifndef MODULES_H_
|
|
#define MODULES_H_
|
|
|
|
-char *module_path;
|
|
+extern char *module_path;
|
|
|
|
#define VAR_PARAM_NO -128
|
|
|
|
diff --git a/src/captagent.c b/src/captagent.c
|
|
index b5c3081..6f5f533 100644
|
|
--- a/src/captagent.c
|
|
+++ b/src/captagent.c
|
|
@@ -321,8 +321,6 @@ int main(int argc, char *argv[]) {
|
|
/* PATH */
|
|
module_path = MODULE_DIR;
|
|
|
|
- hepmod = malloc(sizeof(hep_module_t));
|
|
-
|
|
load_xml_config();
|
|
|
|
/*CORE CONFIG */
|
|
diff --git a/src/conf_function.c b/src/conf_function.c
|
|
index 478ce73..9f4648f 100644
|
|
--- a/src/conf_function.c
|
|
+++ b/src/conf_function.c
|
|
@@ -57,6 +57,9 @@
|
|
#define ROUTE_MAX_REC_LEV 10 /* maximum number of recursive calls
|
|
for capture()*/
|
|
|
|
+struct sr_module* modules; /* global module list */
|
|
+
|
|
+
|
|
/* ret= 0! if action -> end of list(e.g DROP),
|
|
> 0 to continue processing next actions
|
|
and <0 on error */
|
|
diff --git a/src/conf_function.h b/src/conf_function.h
|
|
index 3ee82ba..ff532d9 100644
|
|
--- a/src/conf_function.h
|
|
+++ b/src/conf_function.h
|
|
@@ -79,8 +79,6 @@ struct sr_module{
|
|
struct sr_module* next;
|
|
};
|
|
|
|
-struct sr_module* modules; /* global module list */
|
|
-
|
|
int register_builtin_modules();
|
|
int load_module(char* path);
|
|
cmd_function find_export2(char* name, int param_no);
|
|
diff --git a/src/modules.c b/src/modules.c
|
|
index 0ad00b5..c0397e1 100644
|
|
--- a/src/modules.c
|
|
+++ b/src/modules.c
|
|
@@ -40,6 +40,9 @@
|
|
#include <captagent/modules_api.h>
|
|
#include <captagent/modules.h>
|
|
|
|
+struct module *module_list;
|
|
+char *module_path;
|
|
+
|
|
int register_module(char *resource_name, xml_node *config, bool global) {
|
|
const char *error;
|
|
module_exports_t *exp;
|
|
diff --git a/src/modules/protocol/tls/decryption.h b/src/modules/protocol/tls/decryption.h
|
|
index fd5e0d7..b553195 100644
|
|
--- a/src/modules/protocol/tls/decryption.h
|
|
+++ b/src/modules/protocol/tls/decryption.h
|
|
@@ -35,6 +35,7 @@
|
|
#include <gcrypt.h>
|
|
#include "define.h"
|
|
#include "uthash.h"
|
|
+#include "captagent/api.h"
|
|
|
|
#define SHA384 0x009d
|
|
#define SHA256 0x009c
|
|
@@ -68,11 +69,6 @@ int private_decrypt(unsigned char * enc_data, int data_len, unsigned char * key,
|
|
|
|
/* **************************** */
|
|
|
|
-#ifdef __GNUC__
|
|
-/* GNU C */
|
|
-#define PACK_OFF __attribute__ ((__packed__));
|
|
-#endif
|
|
-
|
|
|
|
/* ++++++++++++++++++++++++ CISCO HDLC +++++++++++++++++++++++++ */
|
|
struct chdlc_hdr
|
|
diff --git a/src/modules/protocol/tls/parser_tls.h b/src/modules/protocol/tls/parser_tls.h
|
|
index e6d6aec..c24076b 100644
|
|
--- a/src/modules/protocol/tls/parser_tls.h
|
|
+++ b/src/modules/protocol/tls/parser_tls.h
|
|
@@ -45,15 +45,15 @@
|
|
#define TLS12 0x0303
|
|
|
|
// Record Type values
|
|
-enum {
|
|
+enum Record_Type {
|
|
CHANGE_CIPHER_SPEC = 20,
|
|
ALERT = 21,
|
|
HANDSHAKE = 22,
|
|
APPLICATION_DATA = 23
|
|
-} Record_Type;
|
|
+};
|
|
|
|
// Handshake Type values
|
|
-enum {
|
|
+enum Handshake_Type {
|
|
HELLO_REQUEST = 0,
|
|
CLIENT_HELLO = 1,
|
|
SERVER_HELLO = 2,
|
|
@@ -66,10 +66,10 @@ enum {
|
|
CERTIFICATE_VERIFY = 15,
|
|
CLIENT_KEY_EXCHANGE = 16,
|
|
FINISHED = 20
|
|
-} Handshake_Type;
|
|
+};
|
|
|
|
// Client Certificate types for Certificate Request
|
|
-enum {
|
|
+enum Client_Certificate_Type {
|
|
RSA_SIGN = 1,
|
|
DSS_SIGN = 2,
|
|
RSA_FIXED_DH = 3,
|
|
@@ -77,7 +77,7 @@ enum {
|
|
RSA_EPHEMERAL_DH_RESERVED = 5,
|
|
DSS_EPHEMERAL_DH_RESERVED = 6,
|
|
FORTEZZA_DMS_RESERVED = 20
|
|
-} Client_Certificate_Type;
|
|
+};
|
|
|
|
|
|
// Chipher Suite availlable for decription
|
|
--
|
|
2.26.3
|
|
|