]> source.dussan.org Git - rspamd.git/commitdiff
Urgent fixes.
authorVsevolod Stakhov <vsevolod@rambler-co.ru>
Wed, 3 Nov 2010 14:21:12 +0000 (17:21 +0300)
committerVsevolod Stakhov <vsevolod@rambler-co.ru>
Wed, 3 Nov 2010 14:21:12 +0000 (17:21 +0300)
src/html.c
src/url.c
src/util.c
src/util.h

index 8bbea95483f9336734c0c0fb67b84262aece0064..dee38a86b74f9edba686ebf0e2062eae224e5557 100644 (file)
@@ -688,7 +688,7 @@ check_phishing (struct worker_task *task, struct uri *href_url, const gchar *url
 
        len = strcspn (url_text, "<>");
 
-       if (url_try_text (task->task_pool, url_text, len, &off, &url_str)) {
+       if (url_try_text (task->task_pool, url_text, len, &off, &url_str) && url_str != NULL) {
                new = memory_pool_alloc0 (task->task_pool, sizeof (struct uri));
                if (new != NULL) {
                        g_strstrip (url_str);
index e801527bd71339dfabc7aec99a302cc1a762c9ec..3b96c083e91ae01f23dda86af3a7006f309a500a 100644 (file)
--- a/src/url.c
+++ b/src/url.c
@@ -1169,7 +1169,8 @@ url_parse_text (memory_pool_t * pool, struct worker_task *task, struct mime_text
                }
                while (p < end) {
                        if (url_try_text (pool, p, end - p, &off, &url_str)) {
-                               if (g_tree_lookup (is_html ? part->html_urls : part->urls, url_str) == NULL) {
+                               if (url_str != NULL &&
+                                               g_tree_lookup (is_html ? part->html_urls : part->urls, url_str) == NULL) {
                                        new = memory_pool_alloc0 (pool, sizeof (struct uri));
                                        if (new != NULL) {
                                                g_strstrip (url_str);
@@ -1215,6 +1216,9 @@ url_try_text (memory_pool_t *pool, const gchar *begin, gsize len, gint *res, gch
                                (*url_str)[m.m_len] = '\0';
 
                        }
+                       else {
+                               *url_str = NULL;
+                       }
                        if (res) {
                                *res = strlen (matcher->pattern);
                        }
index df0e444c308593f2773de0ddca8930d4bbb174cf..eb1b77e0ccaa85f517057ef2af9ec4a5650f382e 100644 (file)
@@ -1551,7 +1551,7 @@ rspamd_sprintf_num (gchar *buf, gchar *last, guint64 ui64, gchar zero,
        return ((gchar *)memcpy (buf, p, len)) + len;
 }
 
-#if ((GLIB_MAJOR_VERSION == 2) && (GLIB_MICRO_VERSION == 2) && (GLIB_MINOR_VERSION < 22))
+#if ((GLIB_MAJOR_VERSION == 2) && (GLIB_MINOR_VERSION < 22))
 void
 g_ptr_array_unref (GPtrArray *array)
 {
index de5df239add048ca9185a56f26fb775c34664e17..f5ce840be0351b5ae2900cdfb1076a86f141472f 100644 (file)
@@ -87,7 +87,7 @@ stat_file_t* get_statfile_by_symbol (statfile_pool_t *pool, struct classifier_co
                const gchar *symbol, struct statfile **st, gboolean try_create);
 #endif
 
-#if ((GLIB_MAJOR_VERSION == 2) && (GLIB_MICRO_VERSION == 2) && (GLIB_MINOR_VERSION < 22))
+#if ((GLIB_MAJOR_VERSION == 2) && (GLIB_MINOR_VERSION < 22))
 void g_ptr_array_unref (GPtrArray *array);
 #endif
 /*