diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2019-10-22 11:35:22 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2019-10-22 11:35:22 +0100 |
commit | 86fb42c53e463bf158525915fc18468f991baeea (patch) | |
tree | b32b8122a78fdb5062e985c361c70778cc8be03a | |
parent | 5c8a82ded139e2490daa83298d3e1f29c6e7b422 (diff) | |
download | rspamd-86fb42c53e463bf158525915fc18468f991baeea.tar.gz rspamd-86fb42c53e463bf158525915fc18468f991baeea.zip |
[Minor] Lua_url: Another fix for emails to string
-rw-r--r-- | src/lua/lua_url.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/lua/lua_url.c b/src/lua/lua_url.c index bd79c1697..57be4c009 100644 --- a/src/lua/lua_url.c +++ b/src/lua/lua_url.c @@ -302,12 +302,20 @@ lua_url_tostring (lua_State *L) if (url != NULL && url->url != NULL) { if (url->url->protocol == PROTOCOL_MAILTO) { - if (url->url->userlen + 1 + url->url->hostlen <= url->url->urllen) { - lua_pushlstring (L, url->url->user, - url->url->userlen + 1 + url->url->hostlen); + if (url->url->userlen + 1 + url->url->hostlen == url->url->urllen) { + lua_pushlstring (L, url->url->string, url->url->urllen); } else { - lua_pushlstring (L, url->url->string, url->url->urllen); + /* TODO: not efficient */ + gchar *tmp = g_malloc (url->url->userlen + 1 + + url->url->hostlen); + memcpy (tmp, url->url->user, url->url->userlen); + tmp[url->url->userlen] = '@'; + memcpy (tmp + url->url->userlen + 1, url->url->host, + url->url->hostlen); + + lua_pushlstring (L, tmp, url->url->userlen + 1 + url->url->hostlen); + g_free (tmp); } } else { |