softethervpn: fix compilation with GCC14
authorRosen Penev <redacted>
Mon, 28 Oct 2024 00:03:22 +0000 (17:03 -0700)
committerRosen Penev <redacted>
Thu, 7 Nov 2024 19:14:58 +0000 (11:14 -0800)
Signed-off-by: Rosen Penev <redacted>
net/softethervpn/Makefile
net/softethervpn/patches/100-gcc14.patch [new file with mode: 0644]

index 88e0a48077391d1721860291ecc6c4ecb32192ee..59c81eda9dd68d13744284fbed1c276c4addd8c7 100644 (file)
@@ -11,7 +11,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=softethervpn
 PKG_VERSION:=4.38-9760
 PKG_VERREL:=rtm
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=softether-src-v$(PKG_VERSION)-$(PKG_VERREL).tar.gz
 PKG_SOURCE_URL:=https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v$(PKG_VERSION)-$(PKG_VERREL)
diff --git a/net/softethervpn/patches/100-gcc14.patch b/net/softethervpn/patches/100-gcc14.patch
new file mode 100644 (file)
index 0000000..88271d9
--- /dev/null
@@ -0,0 +1,121 @@
+--- a/src/Mayaqua/Secure.c
++++ b/src/Mayaqua/Secure.c
+@@ -417,11 +417,11 @@ bool SignSecByObject(SECURE *sec, SEC_OB
+       // Perform Signing\r
+       size = 128;\r
+       // First try with 1024 bit\r
+-      ret = sec->Api->C_Sign(sec->SessionId, hash, sizeof(hash), dst, &size);\r
++      ret = sec->Api->C_Sign(sec->SessionId, hash, sizeof(hash), dst, (CK_ULONG*)&size);\r
+       if (ret != CKR_OK && 128 < size && size <= 4096/8)\r
+       {\r
+               // Retry with expanded bits\r
+-              ret = sec->Api->C_Sign(sec->SessionId, hash, sizeof(hash), dst, &size);\r
++              ret = sec->Api->C_Sign(sec->SessionId, hash, sizeof(hash), dst, (CK_ULONG*)&size);\r
+       }\r
+       if (ret != CKR_OK || size == 0 || size > 4096/8)\r
+       {\r
+@@ -474,7 +474,7 @@ bool WriteSecKey(SECURE *sec, bool priva
+       UINT key_type = CKK_RSA;\r
+       CK_BBOOL b_true = true, b_false = false, b_private_obj = private_obj;\r
+       UINT obj_class = CKO_PRIVATE_KEY;\r
+-      UINT object;\r
++      CK_ULONG object;\r
+       UINT ret;\r
+       BUF *b;\r
+       RSA *rsa;\r
+@@ -716,7 +716,7 @@ bool WriteSecCert(SECURE *sec, bool priv
+       UCHAR value[4096];\r
+       UINT ret;\r
+       BUF *b;\r
+-      UINT object;\r
++      CK_ULONG object;\r
+       CK_ATTRIBUTE a[] =\r
+       {\r
+               {CKA_SUBJECT,                   subject,                0},                     // 0\r
+@@ -1264,7 +1264,7 @@ LIST *CloneEnumSecObject(LIST *o)
+ LIST *EnumSecObject(SECURE *sec)\r
+ {\r
+       CK_BBOOL b_true = true, b_false = false;\r
+-      UINT objects[MAX_OBJ];\r
++      CK_ULONG objects[MAX_OBJ];\r
+       UINT i;\r
+       UINT ret;\r
+       LIST *o;\r
+@@ -1273,7 +1273,7 @@ LIST *EnumSecObject(SECURE *sec)
+       {\r
+               {CKA_TOKEN,             &b_true,                sizeof(b_true)},\r
+       };\r
+-      UINT num_objects = MAX_OBJ;\r
++      CK_ULONG num_objects = MAX_OBJ;\r
+       // Validate arguments\r
+       if (sec == NULL)\r
+       {\r
+@@ -1389,7 +1389,7 @@ bool WriteSecData(SECURE *sec, bool priv
+ {\r
+       UINT object_class = CKO_DATA;\r
+       CK_BBOOL b_true = true, b_false = false, b_private_obj = private_obj;\r
+-      UINT object;\r
++      CK_ULONG object;\r
+       CK_ATTRIBUTE a[] =\r
+       {\r
+               {CKA_TOKEN,             &b_true,                sizeof(b_true)},\r
+@@ -1713,7 +1713,7 @@ void CloseSecSession(SECURE *sec)
+ bool OpenSecSession(SECURE *sec, UINT slot_number)\r
+ {\r
+       UINT err = 0;\r
+-      UINT session;\r
++      CK_ULONG session;\r
+       // Validate arguments\r
+       if (sec == NULL)\r
+       {\r
+@@ -1827,7 +1827,7 @@ SECURE *OpenSec(UINT id)
\r
+       // Get the slot list\r
+       sec->NumSlot = 0;\r
+-      if ((err = sec->Api->C_GetSlotList(true, NULL, &sec->NumSlot)) != CKR_OK || sec->NumSlot == 0)\r
++      if ((err = sec->Api->C_GetSlotList(true, NULL, (CK_ULONG*)&sec->NumSlot)) != CKR_OK || sec->NumSlot == 0)\r
+       {\r
+               // Failure\r
+               FreeSecModule(sec);\r
+@@ -1837,7 +1837,7 @@ SECURE *OpenSec(UINT id)
\r
+       sec->SlotIdList = (UINT *)ZeroMalloc(sizeof(UINT) * sec->NumSlot);\r
\r
+-      if (sec->Api->C_GetSlotList(TRUE, sec->SlotIdList, &sec->NumSlot) != CKR_OK)\r
++      if (sec->Api->C_GetSlotList(TRUE, (CK_ULONG*)sec->SlotIdList, (CK_ULONG*)&sec->NumSlot) != CKR_OK)\r
+       {\r
+               // Failure\r
+               Free(sec->SlotIdList);\r
+--- a/src/Mayaqua/Unix.c
++++ b/src/Mayaqua/Unix.c
+@@ -309,9 +309,8 @@ OS_DISPATCH_TABLE *UnixGetDispatchTable(
+       return &t;\r
+ }\r
\r
+-static void *signal_received_for_ignore(int sig, siginfo_t *info, void *ucontext) \r
++static void signal_received_for_ignore(int sig, siginfo_t *info, void *ucontext) \r
+ {\r
+-      return NULL;\r
+ }\r
\r
+ // Ignore the signal flew to the thread\r
+--- a/src/Cedar/BridgeUnix.c
++++ b/src/Cedar/BridgeUnix.c
+@@ -151,6 +151,7 @@ struct my_tpacket_auxdata
+ #endif        // UNIX_LINUX\r
\r
+ static LIST *eth_offload_list = NULL;\r
++extern void FreeTap(VLAN *v);\r
\r
+ // Initialize\r
+ void InitEth()\r
+--- a/src/Cedar/Console.c
++++ b/src/Cedar/Console.c
+@@ -104,6 +104,7 @@
\r
+ #include "CedarPch.h"\r
\r
++extern int getch(void);\r
\r
+ // Display the help for the command\r
+ void PrintCmdHelp(CONSOLE *c, char *cmd_name, TOKEN_LIST *param_list)\r
git clone https://git.99rst.org/PROJECT