aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYasuhiro Kimura <yasu@FreeBSD.org>2024-06-21 01:56:06 +0000
committerYasuhiro Kimura <yasu@FreeBSD.org>2024-06-21 01:56:06 +0000
commit5ff2ef7d70f8411449f3fe5b0f12da8597dce7d3 (patch)
treee1e47ee3a13ddf7282ea80f575783b84479ab6ee
parent8f72064dae764aa4a0a2b20f8e32434adc15fe10 (diff)
downloadports-5ff2ef7d70f8411449f3fe5b0f12da8597dce7d3.tar.gz
ports-5ff2ef7d70f8411449f3fe5b0f12da8597dce7d3.zip
mail/opendkim-devel: Add patch to fix bug related to Lua
PR: 279811 Reported by: Yasuhito FUTATSUKI Obtained from: https://github.com/trusteddomainproject/OpenDKIM/pull/201
-rw-r--r--mail/opendkim-devel/Makefile1
-rw-r--r--mail/opendkim-devel/files/patch-lua_pop86
2 files changed, 87 insertions, 0 deletions
diff --git a/mail/opendkim-devel/Makefile b/mail/opendkim-devel/Makefile
index 338b4141d3d1..9053f3e023aa 100644
--- a/mail/opendkim-devel/Makefile
+++ b/mail/opendkim-devel/Makefile
@@ -2,6 +2,7 @@ PORTNAME= opendkim
DISTVERSIONPREFIX= rel-opendkim-
DISTVERSION= 2.11.0-Beta2-48
DISTVERSIONSUFFIX= -g551ab382
+PORTREVISION= 1
CATEGORIES= mail security
PKGNAMESUFFIX= -devel
diff --git a/mail/opendkim-devel/files/patch-lua_pop b/mail/opendkim-devel/files/patch-lua_pop
new file mode 100644
index 000000000000..129d05d62e6d
--- /dev/null
+++ b/mail/opendkim-devel/files/patch-lua_pop
@@ -0,0 +1,86 @@
+From 57b86d35381ed9bfb7e4be4e6512fb64163dd725 Mon Sep 17 00:00:00 2001
+From: FUTATSUKI Yasuhito <futatuki@yf.bsdclub.org>
+Date: Tue, 27 Feb 2024 14:41:59 +0900
+Subject: [PATCH] Lua: Fix stack level after register odkim functions.
+
+When luaL_setfuncs() is replaced by luaL_newlib() + lua_setglobal()
+in commit 74b3374feee34fba14a0e15f89f049cbe4a3dafd, the commit did
+not take account that lua_setglobal() pops a value from the stack.
+
+Thus, following lua pop(l, 1) tries to pop from empty stack in
+Lua >= 5.2, especially in Lua 5.4, it causes abort().
+
+This fix it.
+
+* miltertest/miltertest.c (main):
+ Don't pop after lua_setglobal() in Lua >= 5.2
+
+* opendkim/opendkim-lua.c
+ (dkimf_lua_setup_hook, dkimf_lua_screen_hook,
+ dkimf_lua_stats_hook, dkimf_lua_final_hook): As above.
+---
+ miltertest/miltertest.c | 2 +-
+ opendkim/opendkim-lua.c | 8 ++++----
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git miltertest/miltertest.c miltertest/miltertest.c
+index b4a345f7..339cfa91 100644
+--- miltertest/miltertest.c
++++ miltertest/miltertest.c
+@@ -4014,8 +4014,8 @@ main(int argc, char **argv)
+ lua_setglobal(l, "mt");
+ #else /* LUA_VERSION_NUM >= 502 */
+ luaL_register(l, "mt", mt_library);
+-#endif /* LUA_VERSION_NUM >= 502 */
+ lua_pop(l, 1);
++#endif /* LUA_VERSION_NUM >= 502 */
+
+ /* register constants */
+ lua_pushnumber(l, MT_HDRINSERT);
+diff --git opendkim/opendkim-lua.c opendkim/opendkim-lua.c
+index 3786aa4b..c1a67f90 100644
+--- opendkim/opendkim-lua.c
++++ opendkim/opendkim-lua.c
+@@ -490,8 +490,8 @@ dkimf_lua_setup_hook(void *ctx, const char *script, size_t scriptlen,
+ lua_setglobal(l, "odkim");
+ # else /* LUA_VERSION_NUM >= 502 */
+ luaL_register(l, "odkim", dkimf_lua_lib_setup);
+-# endif /* LUA_VERSION_NUM >= 502 */
+ lua_pop(l, 1);
++# endif /* LUA_VERSION_NUM >= 502 */
+
+ /*
+ ** Register constants.
+@@ -649,8 +649,8 @@ dkimf_lua_screen_hook(void *ctx, const char *script, size_t scriptlen,
+ lua_setglobal(l, "odkim");
+ # else /* LUA_VERSION_NUM >= 502 */
+ luaL_register(l, "odkim", dkimf_lua_lib_screen);
+-# endif /* LUA_VERSION_NUM >= 502 */
+ lua_pop(l, 1);
++# endif /* LUA_VERSION_NUM >= 502 */
+
+ /*
+ ** Register constants.
+@@ -798,8 +798,8 @@ dkimf_lua_stats_hook(void *ctx, const char *script, size_t scriptlen,
+ lua_setglobal(l, "odkim");
+ # else /* LUA_VERSION_NUM >= 502 */
+ luaL_register(l, "odkim", dkimf_lua_lib_stats);
+-# endif /* LUA_VERSION_NUM >= 502 */
+ lua_pop(l, 1);
++# endif /* LUA_VERSION_NUM >= 502 */
+
+ /*
+ ** Register constants.
+@@ -1039,8 +1039,8 @@ dkimf_lua_final_hook(void *ctx, const char *script, size_t scriptlen,
+ lua_setglobal(l, "odkim");
+ # else /* LUA_VERSION_NUM >= 502 */
+ luaL_register(l, "odkim", dkimf_lua_lib_final);
+-# endif /* LUA_VERSION_NUM >= 502 */
+ lua_pop(l, 1);
++# endif /* LUA_VERSION_NUM >= 502 */
+
+ /*
+ ** Register constants.
+--
+2.45.2
+