commit 601e640: [Minor] Allow lua_text in addition to strings

Vsevolod Stakhov vsevolod at highsecure.ru
Tue Dec 14 17:49:05 UTC 2021


Author: Vsevolod Stakhov
Date: 2021-12-14 16:16:56 +0000
URL: https://github.com/rspamd/rspamd/commit/601e6403a2c8bcd9e73bb683cd26aa5d3a2c06b9

[Minor] Allow lua_text in addition to strings

---
 src/lua/lua_text.c |  2 +-
 src/lua/lua_util.c | 20 +++++++++++++-------
 2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/src/lua/lua_text.c b/src/lua/lua_text.c
index d1fd87ded..f88b5c29b 100644
--- a/src/lua/lua_text.c
+++ b/src/lua/lua_text.c
@@ -292,7 +292,7 @@ lua_check_text_or_string (lua_State * L, gint pos)
 		 * Fake static lua_text, we allow to use this function multiple times
 		 * by having a small array of static structures.
 		 */
-		static int cur_txt_idx = 0;
+		static unsigned cur_txt_idx = 0;
 		static struct rspamd_lua_text fake_text[4];
 		gsize len;
 		int sel_idx;
diff --git a/src/lua/lua_util.c b/src/lua/lua_util.c
index 570a51be7..4dd944008 100644
--- a/src/lua/lua_util.c
+++ b/src/lua/lua_util.c
@@ -1366,11 +1366,12 @@ static gint
 lua_util_fold_header (lua_State *L)
 {
 	LUA_TRACE_POINT;
-	const gchar *name, *value, *how, *stop_chars = NULL;
+	const gchar *how, *stop_chars = NULL;
+	struct rspamd_lua_text *name, *value;
 	GString *folded;
 
-	name = luaL_checkstring (L, 1);
-	value = luaL_checkstring (L, 2);
+	name = lua_check_text_or_string (L, 1);
+	value = lua_check_text_or_string (L, 2);
 
 	if (name && value) {
 
@@ -1383,20 +1384,25 @@ lua_util_fold_header (lua_State *L)
 			}
 
 			if (strcmp (how, "cr") == 0) {
-				folded = rspamd_header_value_fold (name, value, 0,
+				folded = rspamd_header_value_fold (name->start, name->len,
+						value->start, value->len,
+						0,
 						RSPAMD_TASK_NEWLINES_CR, stop_chars);
 			}
 			else if (strcmp (how, "lf") == 0) {
-				folded = rspamd_header_value_fold (name, value, 0,
+				folded = rspamd_header_value_fold (name->start, name->len,
+						value->start, value->len, 0,
 						RSPAMD_TASK_NEWLINES_LF, stop_chars);
 			}
 			else {
-				folded = rspamd_header_value_fold (name, value, 0,
+				folded = rspamd_header_value_fold (name->start, name->len,
+						value->start, value->len, 0,
 						RSPAMD_TASK_NEWLINES_CRLF, stop_chars);
 			}
 		}
 		else {
-			folded = rspamd_header_value_fold (name, value, 0,
+			folded = rspamd_header_value_fold (name->start, name->len,
+					value->start, value->len, 0,
 					RSPAMD_TASK_NEWLINES_CRLF, stop_chars);
 		}
 


More information about the Commits mailing list