commit d8e47a1: [Fix] Fix `url:set_redirected` method
Vsevolod Stakhov
vsevolod at rspamd.com
Wed Aug 9 16:35:03 UTC 2023
Author: Vsevolod Stakhov
Date: 2023-08-09 17:31:04 +0100
URL: https://github.com/rspamd/rspamd/commit/d8e47a12ae221b2e79dbd786ccfa0402cff0c49b (HEAD -> master)
[Fix] Fix `url:set_redirected` method
---
src/lua/lua_url.c | 16 +++++++++++-----
src/plugins/lua/url_redirector.lua | 5 +++--
2 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/src/lua/lua_url.c b/src/lua/lua_url.c
index 3f25b3128..913469f6d 100644
--- a/src/lua/lua_url.c
+++ b/src/lua/lua_url.c
@@ -1,11 +1,11 @@
-/*-
- * Copyright 2016 Vsevolod Stakhov
+/*
+ * Copyright 2023 Vsevolod Stakhov
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -500,10 +500,10 @@ lua_url_get_phished(lua_State *L)
}
/***
- * @method url:set_redirected(url,[ pool])
+ * @method url:set_redirected(url, pool)
* Set url as redirected to another url
* @param {string|url} url new url that is redirecting an old one
- * @param {pool} pool if url is a string this is required for parsing
+ * @param {pool} pool memory pool to allocate memory if needed
* @return {url} parsed redirected url (if needed)
*/
static gint
@@ -557,6 +557,12 @@ lua_url_set_redirected(lua_State *L)
return luaL_error(L, "url is required as the second argument");
}
+ pool = rspamd_lua_check_mempool(L, 3);
+
+ if (pool == NULL) {
+ return luaL_error(L, "mempool is required as the third argument");
+ }
+
url->url->flags |= RSPAMD_URL_FLAG_REDIRECTED;
if (url->url->ext == NULL) {
url->url->ext = rspamd_mempool_alloc0_type(pool, struct rspamd_url_ext);
diff --git a/src/plugins/lua/url_redirector.lua b/src/plugins/lua/url_redirector.lua
index 19189a5ee..092fb7def 100644
--- a/src/plugins/lua/url_redirector.lua
+++ b/src/plugins/lua/url_redirector.lua
@@ -59,12 +59,13 @@ local settings = {
}
local function adjust_url(task, orig_url, redir_url)
+ local mempool = task:get_mempool()
if type(redir_url) == 'string' then
- redir_url = rspamd_url.create(task:get_mempool(), redir_url, { 'redirect_target' })
+ redir_url = rspamd_url.create(mempool, redir_url, { 'redirect_target' })
end
if redir_url then
- orig_url:set_redirected(redir_url)
+ orig_url:set_redirected(redir_url, mempool)
task:inject_url(redir_url)
if settings.redirector_symbol then
task:insert_result(settings.redirector_symbol, 1.0,
More information about the Commits
mailing list