summaryrefslogtreecommitdiffstats
path: root/main/squark/0002-filter-default-path-is-const-and-thus-non-writable.patch
blob: fe3fb1bf48e0081bd430f59903cd7dcd653680e2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
From bdb5a17e3570ee5bde564f894444125be16a233c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
Date: Thu, 27 Nov 2014 15:45:31 +0200
Subject: [PATCH] filter: default path is const and thus non-writable

fix crash that would happen in blob_lowercase due to trying to
write rodata.
---
 src/squark-filter.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/src/squark-filter.c b/src/squark-filter.c
index 827540e..5ffcedf 100644
--- a/src/squark-filter.c
+++ b/src/squark-filter.c
@@ -168,8 +168,7 @@ static int url_parse(blob_t uri, struct url_info *nfo)
 		else
 			nfo->port = 80;
 	}
-	if (blob_is_null(nfo->path))
-		nfo->path = BLOB_STR("/");
+	if (blob_is_null(nfo->path)) nfo->path = slash;
 
 	/* significant host name */
 	nfo->significant_host = nfo->host;
@@ -275,7 +274,7 @@ static int url_classify(struct url_info *url, struct sqdb *db)
 
 	/* and then search for path matches -- construct hashing
 	 * string of url decoded path */
-	blob_lowercase(url->path); /* filter DB stores all URLs in lowercase */
+	if (url->path.ptr != slash.ptr) blob_lowercase(url->path); /* filter DB stores all URLs in lowercase */
 	blob_push_urldecode(&keybuf, url->path);
 	keylimits = blob_pushed(BLOB_BUF(buffer), keybuf);
 
-- 
2.2.0