]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Lua_url: Another fix for emails to string
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 22 Oct 2019 10:35:22 +0000 (11:35 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 22 Oct 2019 10:35:22 +0000 (11:35 +0100)
src/lua/lua_url.c

index bd79c169747522b4aeda8279b4a49d8b31084414..57be4c009e0b30ed1c76867aa68df301acaf44a6 100644 (file)
@@ -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 {